数组的长度问题
char a[]="xyz";char b[]={'x','y','z'};
数组a的长度比数组b长.
请高手解释一下,谢谢
----------------解决方案--------------------------------------------------------
实在不会的交你用数组strlen(),返回就是长度
----------------解决方案--------------------------------------------------------
第一个是一个字符串,它包含字符'\0'当然比第二个的长度要长一些呀!
----------------解决方案--------------------------------------------------------
strlen()函数不会显示'\0吧'用strlen比较这两个应该是一样长的
----------------解决方案--------------------------------------------------------
char a[]="xyz";
char b[]={'x','y','z'};
以上两个字符数组;
若用strlen去求解,结果是一致的,都是字符个数 3
但要用sizeof去求解,结果就不一定;
具体来说:
sizeof(a) //结果为4,编译器把'\0'计算在内;
但sizeof(b)的结果是不一定的,和编译器的种类有关,编译器不同,结果也不一样,有时还会出现随机数;
----------------解决方案--------------------------------------------------------
看编译器的了.只有一个\O的区别
----------------解决方案--------------------------------------------------------
谢谢大家的解释
----------------解决方案--------------------------------------------------------
顶5楼的
----------------解决方案--------------------------------------------------------