下列语句不正确的是( )。 A

下列语句不正确的是( )。
A. char a[10]="China";
B. char a[10],*p=a; p="China";
C. char a[10]; a="China";
D. char a[10],*p; p=a; p="China";
我觉得是b *p=a *p是内容 a是地址怎么能赋值啊 p=“china”有是怎么回事,p不是地址吗,“china”不是字符串吗,到底怎么回事啊

C 错

A 把a[10]的内容初始化为 "China"
B 定义a[10]字符数组,定义字符指针p指向a代表的a[10]字符数组首地址,然后p="China"又把字符串常量"China"的首地址赋给p。

C 定义a[10]没错,a="China"错,数组名不能被赋值。

D 和B的不同是,用单独的句子p=a把a代表的地址赋给p
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-10
A 是对的,定义字串的同时赋值。

C 不对,应为C语言,在定义字串以后,给字串赋值,要用strcpy(a, "China");
第2个回答  2013-01-10
答案是c
数组首地址是常量,不可以赋值的
第3个回答  2013-01-10
是在声明的同时初始化,这样看:char *p=a,好理解了吧?*p=a前面是逗号,不是分号。
第4个回答  2013-01-10
a正确
至于b呢 P应指向地址,p=a 就对了。 “China"只是字符串不是地址追问

答案是c

第5个回答  2013-01-10
用编程软件挨个试试。。。最头疼这种东东了。。。
相似回答