问题详情

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


A、char sl[4]="abed";

B、char s2[]="efg";

C、char s3[2][3]={"abc","xyz");

D、char s4[][]={'a','b','c'};

时间:2022-01-04 12:04 关键词:

答案解析

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,行数列数都省掉,而实际上只能省略行数,不能省略列数。