51单片机的一个赋值问题--数组

2020-01-27 11:27发布

本帖最后由 and001 于 2013-8-19 11:49 编辑

存在如下一个赋值问题:

我的目的是将一个4位数分别单独转换成数字显示出来:


方法一:

char i=1;
unsigned ring_lengther[2]={2023,6723};
unsigned ring_lengther;   
unsinged k2,

        ring_lengther=ring_length;
         k2= ring_length/1000;

         k3=ring_length%1000/100;
         k4=ring_length%100/10;
         k5=ring_length%10;

运行最后显示的是: 0000

方法二:

char i=1;
unsigned ring_length[2]={2023,6723};
unsigned ring_lengther;   
unsinged k2,

         ring_lengther=ring_length;
         k2= ring_lengther/1000;

         k3=ring_lengther%1000/100;
         k4=ring_lengther%100/10;
         k5=ring_lengther%10;

运行最后显示的是:K2=6  K3=7 K4=2  K5=3


请弄过的朋友解释下为啥方法一得不到所需要的结果?!

各抒己见!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
昨夜清风
1楼-- · 2020-01-29 06:06
怎么看来看去都一样的?
昨夜清风
2楼-- · 2020-01-29 11:17
方法1,直接对数组操作,数组名只是数组的首地址,你对数组名求余、取除,应该是对地址操作后得到的内存地址的值
and001
3楼-- · 2020-01-29 13:11
请上面以8楼信息为准,之前的是错误的!
8楼不是针对数组名的
lovelywwei
4楼-- · 2020-01-29 13:28
方法1中,k2= ring_length/1000;看看这句。
and001
5楼-- · 2020-01-29 13:46
 精彩回答 2  元偷偷看……
albert_w
6楼-- · 2020-01-29 17:01
是脑子不清晰还是遮遮掩掩舍不得贴那几行原版代码? 就这么几行代码, 贴了两天改来改去还错误百出... 要是我就直接找地缝去了. 有些错咱可以犯, 有些错, 咱不可以犯...

还有,对于把i初始化为1的行为... 我们表示很

方法一工作起来没有问题:
点这里看结果

一周热门 更多>