c语言关于数组长度的疑问

原题: 已有定义:char a[]="xyz",b[]={'x','y','z'};下面叙述正确的是( )。 A)数组a和b的长度相同 B)数组a的长度小于数组b的长度 C)数组a长度大于数组b长度 D)上述说法都不对 我看正确答案是选A)数组a和b的长度相同。 可a明明是字符串常量,末尾应该加上\0,也就是说a的数组长度是4; b是字符常量,所以数组长度应该是3; 所以我认为应该选C才对,可为什么答案上选的A呢? 你们觉得呢?

第1个回答  2019-01-19
你说得对,a末尾有"\0",b没有。
题目出得不清楚,“数组长度”指数组有几个数组元素,还是占据内存的长度,还是字符串长度。
数组元素个数,a
4个,
b
3个
占据内存的长度,
sizeof(a)
得4
,sizeof(b)

3
字符串长度,strlen(a)得3
,strlen(b)得
3
题目想问的是“字符串长度”,说成“数组长度”。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网