答案是B、C。
A、a[2][4]是错的,原因是第一维越界,不存在a[]。
D、a(2)(1)是错的,只有函数、强制类型转换、算式才使用圆括号。
对于a[3][4]说明有12元素,行从0到2,列从0到3,a[0][4]的列超界。
数组说明的一般形式为:类型说明符数组名 [常量表达式],其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。
扩展资料:
数组元素是组成数组的基本单元。数组元素也是一种变量, 其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。在C语言中只能逐个地使用下标变量,而不能一次引用整个数组。
例如:
a[5]
a[i+j]
a[i++]
都是合法的数组元素。
参考资料来源:百度百科-数组元素
A、a[2][4]是错的,原因是第一维越界,不存在a[][4]。
D、a(2)(1)是错的,只有函数、强制类型转换、算式才使用圆括号。
所以正确的答案是B、C。
选B和C
int a[3][4],数组高维下标从0-2,数组低维下标从0-3
A的低维下标是4,超过最大低维下标,所以不合法
B的两个下标都落在合法区域
C的高维下标是1+1常量,即为2,也是合法的
D的表达方式不合法,数组下标要用[],而不能用()