下列不正确的字符数组初始化为

A char [5]="abc" B char [5]={"abc"}
C char [5]="12345"
答案是C,为啥啊?AB都可以吗?谢了。

A:直接将一个字符串赋值给一个字符数组,这是可以的,里面的元素为"abc"='a','b','c','\0';
B:使字符数组的元素为字符串{"abc"}={'a','b','c','\0'},这也是可以的;
C:和A一样,但是"12345"='1','2','3','4','5','\0'请看看其元素个数是6,而数组大小才为5,所以发生溢出错误。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-04
C选项中,定义了一个5个元素的字符数组,但是在初始化表达式中却有6个字符,即字符串"12345"还有一个结束标志'\0',共需要6个字符元素才能完整存储。
第2个回答  2010-07-04
A、B是对的
而C是错,因为字符长度为6(要加上'\0')

C 语言 以下不能正确进行字符串初始化的语句是? 给详细解释一下。谢谢...
答案肯定是A啊 对于没有定义了字符数组长度的,并且单个单个赋初值的,需要在最后手动加上'\\0'字符,而A没有 A因为没有字符串结束标志\\0而不知道数组的具体大小。C:是可以的,因为在声明同时赋初值时定义了数组长度时,由于只对前五个进行了赋值,那么就默认字符串到此为止,后面三个位空,闲置;B...

以下不正确的字符串赋初值的方式是? A char *str ="string"; B char...
a,c,d是对的。a是把string的首地址赋给了str b中str 是一个字符指针,接受到“string ”适当做地址接受的,所以不对 c和d都是字符串数组。

以下不能正确进行字符串赋初值的语句是 __
1 A.char str[5]={"good!"};\/\/这个不符合C语言的语法规定,字符串初始化是这样写的:char str[6]="good!"; \/\/因最后还有一个结束符,因此数组元素应该是6个。2 题目表述有些不准确,A,B,D叫初始化,C叫赋值。3 题目中的单双引号全部是中文的,这也不符合C语言语法。应该改为英文的...

下面是对s的初始化,其中不正确的是( )
D。前面三个都使s储存了一个字符串,都自动加了串结束符,D因为“abcde”本身就有5个字符了,s这个字符数组满了,电脑就不会自动加串结束符,所以D中的s代表的不是字符串,从这个意义上讲它就错了。D选项并不会引起编译错误,这点在TC20下证实.另外B选项的初始化因为不满5个,编译器会自动为...

10) 以下定义一个字符数组str并对其进行初始化,有错误的是() D...
C有错误,错在申请的空间不足以装填初始化的数据长度。

下面关于数组的初始化正确的是( )。 A.charstr[]={a,b,e}B.charstr...
【答案】:A A。【解析】本题考查的是字符数组的初始化。选项B中用三个元素初始化大小为2的数组,越界了;选项C中应该是2行3列的数组,题中使用3行2列初始化;选项D中数组应用方括号。

C语言 以下不能对二维数组初始化的是( ) A、int a[4][2]={0}; B...
选B,B选项就是一个错误的表达方式,数组的元素应该是字符,但是题目上是字符串

c++语言的程序,附答案
int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是A. char s1[]="abcd"; B. char s2[3]={'x','y','\\0'};C. char s3[]={'a','x','y','\\0'}; D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是A. 某个对象名 B.某个对象成员名C....

C语言的问题,字符串数组初始化 a[30]={\\0}、a[30]={0}、a[30]={"0...
第一个写法错误,会有编译错误的,第二个写法也不对,但是编译不会报错,数组还是没有初始化,第三个是初始化数组,只是a[0]="0"。

下列数组的初始化正确的是( )。(选两项)
A 正确 B不正确 int score[] = new int[],后面的中括号中要写明数字的

相似回答