在C语言中,下列给数组进行初始化中,______是正确的。

admin2010-12-16  19

问题 在C语言中,下列给数组进行初始化中,______是正确的。

选项 A、char sl[4]="abed";
B、char s2[]="efg";
C、char s3[2][3]={"abc","xyz");
D、char s4[][]={’a’,’b’,’c’};

答案B

解析 给一维字符数组初始化的方法有以下几种:
   (1) 在花括号里依次列出各个字符,字符间用逗号隔开。例如:char s[6]={’a’,’b’,’,’e’};该数组仅给出前四个元素的值,其余元素系统自动置为空。
   (2) 不指定数组的大小,有系统根据所列举的字符个数来确定字符数组的大小。例如;
   char S[]={’a’,’b’,’C’,",’m’);定义的数组大小为5。
   (3)把双引号括起来的一个字符串作为字符数组的初值。例如:char s[9]=”tello”;这里要注意的是,数组的最后还有一个元素存放字符串的结束符。由char sl[]=”good morning”;定义的数组的大小是13而不是12。
   给一个二维数组初始化的方法有:
   (1) 以数组行为单位,依次给数组元素赋初值。
   (2) 按数组元素的排列顺序依次列出各个元素的值。
   (3) 根据给定的初始化数据,自动确定数组的行数,要注意的事只能省略行数,不能省略列数。
   题目中,选项A,数据的实际大小为5,越界。选项C,每行有4列元素,越界。选项D,行数列数都省掉,而实际上只能省略行数,不能省略列数。
转载请注明原文地址:https://kaotiyun.com/show/VdjZ777K
0

相关试题推荐
最新回复(0)