设有如下程序段 int a[8] = {0}; int b[] = {0}; char c[2] = {"A", "B"}; char d = "AB"; 以下叙述正确的是

admin2021-04-28  27

问题 设有如下程序段
    int a[8] = {0};
    int b[] = {0};
    char c[2] = {"A", "B"};
    char d = "AB";
以下叙述正确的是

选项 A、只有a,b,c的定义是合法的
B、a,b,c,d的定义都是合法的
C、只有a,b的定义是合法的
D、只有c的定义是合法的

答案C

解析 在对数组进行初始化时应该注意,如果对数组的全部元素赋以初值,定义时可以不指定数组长度,如果被定义数组的长度与初值个数不同,则数组长度不能省略;如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值。定义整型数组a,长度为8,并且其每个元素赋初值0,a定义是合法的。定义整型数组b,没有指定长度,但为1个元素赋值0,所以自动指定数组长度为1,b定义是合法的。定义字符型数组c,长度为2,应对其元素赋值字符型常量,而"A"与"B"均为字符串,c定义不合法。定义字符d,赋初值字符串"AB",这是不合法的定义,若要定义数组,必须要有"[]"下标运算符。可知,ab定义合法,cd定义不合法,C选项正确。
转载请注明原文地址:https://kaotiyun.com/show/YTtp777K
0

最新回复(0)