首页 > 试题广场 >

下列数组定义语句中,不合法的是( )。

[单选题]
下列数组定义语句中,不合法的是()
  • int a[3] = { 0, 1, 2, 3 };
  • int a[] = { 0, 1, 2 };
  • int a[3] = { 0, 1, 2 };
  • int a[3] = { 0 };
int a[3]表示数组里面只有三个数,A选项数组越界
发表于 2018-09-11 10:36:42 回复(0)
把自己坑了一把,突然混淆了数组定义的int a [n]
看到a[3]想到,还有a[0],a[1],a[2],a[3],四个数差点选了A。

一维数组的定义和初始化过程中有三种方法:
1.在定义数组时对全部数组元素赋予初值,即选项C。
2.可以只给一部分元素赋初值,后面的元素默认为0,即选项D。
3.在对全部元素赋初值时,可以不指定数组长度,即选项B。


A错在数组越界,int a [n],其中n为常量表达式,表示数组中元素的个数。
常量表达式可以是常量,常变量和符号常量,但是不包括变量。
const int n=5;
int a[n];
这种定义方式是合法的,因为n为常变量。
发表于 2019-06-23 14:58:54 回复(0)
选A,数组越界
发表于 2018-09-10 20:06:02 回复(0)
int a[3] = { 0, 1, 2, 3 };//数组长度为3,初始化数据过多,会产生警告,多余数据自动丢弃,不足则自动补0

发表于 2021-03-16 20:33:30 回复(1)
越界
发表于 2018-09-10 17:50:01 回复(0)