下列给字符数组赋初值时,正确的是( A )。 A. char s1[]=”abcdef”; B. char s2[4]=”abcd”; C. char s3

下列给字符数组赋初值时,正确的是( A )。
A. char s1[]=”abcdef”; B. char s2[4]=”abcd”;
C. char s3[2][3]={“abc”,”xyz”}; D. char s4[4][]={‘a’,’x’,’s’,’t’};
其他的为什么错了啊

B项,在初始化一个字符数组时,要自动在末尾添加'\0',表示字符数组结束,如果定义为s2[4]的话,'\0'没有地方放了。
C项,定义了一个2行三列的二维数组,但是第二行赋值"xyz",很明显又没有地方放'\0'了。
D项,定义二维数组时,只能省略行的参数,不能省略列的参数,否则会引起歧义。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-27
b 是 char s2[5] 还有空字符 c char s3[2][4] 理由同上 d.char s4[4][] 只允许第一个可以不写,即可以char s4[][4] 因为如果你这样写 char s4[4][]={"ab",’x’,’s’,’t’}; 第二维应该是几呢
书上者都有。。
不要死扣概念,练习多啦就会拉。。
第2个回答  2017-10-30
B)char s2[4]="abcd"; 字符串存储时需要5个字节(外加一个串结束符)
C)同上理由
D)定义二维数组时,第二维的下标是不可以缺省的。

相关了解……

你可能感兴趣的内容

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