不是给数组的第一个元素赋值的语句是

不是给数组的第一个元素赋值的语句是
A)int a[2]={1}
B)int a[2]={1*2}
c)int a[2];scanf("%d",a)
D)a[1]=1;
麻烦解释下

答案是D, 数组元素的下表是从0开始计数,第一个元素应该是a[0]。追问

那ABC的下标都是不是0啊

追答

A、B是在定义数组时对数组进行初始化,即定义了一个只有2个元素的数组,包含元素a[0]和a[1],用后面的{}内的数按顺序对前面的数组元素进行初始化,A中使a[0]=1,a[1]=0,因为{1}只有一个数,所以就把1赋给a[0],剩余的元素默认赋值为0;B中使a[1]=2,a[1]=0,道理和上面一样,只是要先计算1×2的结果后再进行赋值。C是先定义数组,然后通过键盘输入给第一个元素进行赋值,由于在C语言中数组名是代表数组的起始地址,也就是第一个元素的地址,所以C也是给第一个元素赋值。

温馨提示:答案为网友推荐,仅供参考
相似回答