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'}}; 哪个语句是对的,求大神详解
正确选项是 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]