tengguodong 发表于 2012-2-28 10:31:09

计算字符串中字符个数时出了点错误,不理解,求解释

#define uchar unsigned char

uchar init_weishu="1000";
uchar i=0;
while(init_weishu != '\0')
i++;
为什么while循环后IAR里面出现的i的最终结果是5呢?我怎么都觉得应该是4啊

tengguodong 发表于 2012-2-28 10:42:05

回复【楼主位】tengguodong
-----------------------------------------------------------------------

补充:如果改成init_weishu[]="1000";
即去掉[]内的4,i最终显示出来的结果就是4了,
为什么呢

0712 发表于 2012-2-28 10:43:40

init_weishu="1000";
应该定义成init_weishu
基础没打好

0712 发表于 2012-2-28 10:45:41

init_weishu[]="1000";
你这样是定义成字符串了,相应的会在字符串后面自动加上'\0'
而init_weishu="1000";,不包含'\0',所以有时候始终找不到'\0',5还是随机的呢

lovelywwei 发表于 2012-2-28 10:57:16

不解释。自己看书。

tengguodong 发表于 2012-2-28 11:03:18

回复【3楼】0712 一笑狙
-----------------------------------------------------------------------

./emotion/em014.gif./emotion/em020.gif懂了懂了,基础果然没打好,这里果然人才济济啊!QQQ
页: [1]
查看完整版本: 计算字符串中字符个数时出了点错误,不理解,求解释