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条回答
and001
1楼-- · 2020-01-28 04:39
 精彩回答 2  元偷偷看……
zhugean
2楼-- · 2020-01-28 09:48
ring_length是unsigned short的指针
ring_lengther是unsigned short变量
怎么赋值?
应该是
unsigned short * ring_lengther;
ring_lengther = ring_length;
k2= *ring_lengther/1000;
and001
3楼-- · 2020-01-28 14:28
谢谢!
可是我的是ring_lengther=ring_length[i];  不就是数据赋给数据了!!

我需要的是数组中的各数据都能能转换,也就是说 i=1,2都要可以的!
谢谢指点
and001
4楼-- · 2020-01-28 19:38
可否直接数组操作呢?
zhugean
5楼-- · 2020-01-29 00:46
我看错了,ring_lengther=ring_length[i];  是可以的
不过数组是从0开始的,所以第二个的答案是对的
and001
6楼-- · 2020-01-29 02:44
 精彩回答 2  元偷偷看……

一周热门 更多>