设有以下定义 char s1[]="0123"; char s2[]={’0’,’1’,’2’,’3’}; 则以下叙述正确的是

admin2020-11-27  27

问题 设有以下定义
       char s1[]="0123";
       char s2[]={’0’,’1’,’2’,’3’};
则以下叙述正确的是

选项 A、数组s1的长度小于s2的长度
B、数组s1和s2的长度相同
C、数组s1的长度大于s2的长度
D、数组s1和s2完全等价

答案C

解析 在对数组进行初始化时应该注意,如果对数组的全部元素赋以初值,定义时可以不指定数组长度。为字符数组s1赋值字符串"0123"时,将字符串中字符依次放入数组中,然后在最后一个字符后添加一个结束字符’\0’,所以数组s1长度为5。而数组s2根据初始化规则,只需要4个单元即可放下所有初始化值,故数组长度为4。所以数组s1的长度大于s2的长度,C选项正确。两个数组等价是指两个数组长度和类型以及对应每个元素值均相同,所以s1和s2不是完全等价,D选项错误。
转载请注明原文地址:https://kaotiyun.com/show/rd3p777K
0

最新回复(0)