下面哪一项是不正确的字符串赋值或赋初值的方式( )。 C

下面哪一项是不正确的字符串赋值或赋初值的方式( )。 C

A. char *str; str="string";

B. char str[7]={'s','t','r','i','n','g'};

C. char str1[10];str1="string";

D. char str1[]="string",str2[]="12345678";
请问能不能给详细解释一下 非常感谢!!!

C是初始化一个含有6个字符的字符数组。B虽然也是初始化了6个元素,但是B一共有7个元素,所以最后一个元素编译器会自动填字符'\0',这就构成了一个字符串。所以B也是一个字符串赋初始值。A和D显然是对的。 所以,C是不正确的字符串赋值。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-09
C
str1,数组名是一个地址常量,不是变量,不能作为左值被赋值。本回答被提问者采纳
第2个回答  2010-07-09
c,数组如果不在初始化时赋值,就只能一个一个的赋值。
第3个回答  2019-05-30
A.
char
*str;
str=
“china”;
B.
char
str[7]=
{‘c’,
‘h’,
‘i’,
‘n’,
‘a’};
C.
char
str1[]=
“china”,str2[]=“123”;
D.
char
str1[10];
str1=
“china”;
答案:
C
第4个回答  2010-07-09
C
相似回答