关于C语言字符数组的问题

A char a[][]={'a','b','c','d','e','f'}; B char a[2][3]='a','b'; B char a[][3]={'a','b','c','d','e','f'}; D char a[][]={{'a','b','c','d','e','f'}}; 哪个语句是对的,求大神详解

第1个回答  2019-12-23
正确选项是
B;
A

D
的错误,都是因为,二维数组
的定义,其一维长度
不能省略,即必须是
a[][n],其中n
可以是任意正整数。
C
的错误是因为,使用
字符
初始化数组时,应加上
花括号{};即
a[2][3]={'a',
'b'};
如果使用
字符串
初始化数组,则可以不加
花括号,如:a[2][3]="ab";
至于B
为什么对呢?

B
项的名称定义符合变量命名要求(字母和下划线开头,由字母、数字、下划线任意组合而成);

B
项的数组定义符合C语言要求,即
其一维长度不可省略。

B
项的数组初始化符合C语言要求,使用
字符
初始化数组,需加花括号。且,因
二维长度省略,所以
数组总长度在初始化时,可任意改变。即该初始化,系统最少会分配
6个元素给数组,即
a[2][3]
相似回答