C语言问题

29)下面说明不正确的是A)chara〔10〕="china";B)chara〔10〕,*p=a;p="china"C)char*a;a="china";D)chara〔... 29)下面说明不正确的是
A)char a〔10〕="china";
B)char a〔10〕,*p=a;p="china"
C)char *a;a="china";
D)char a〔10〕,*p;p=a="china"
请详细分析一下BD
展开
 我来答
szy1_119
2008-09-17 · TA获得超过1056个赞
知道小有建树答主
回答量:454
采纳率:0%
帮助的人:0
展开全部
D错

B)char a〔10〕,*p=a;p="china"//定义数组g[10],定义指针p,p指向数组a[10],给指针赋值,指针在定义以后可以直接赋字符串值。
D)char a〔10〕,*p;p=a="china" //在这里相当于是a="china";p=a;但是在数组定义以后不能再这样给数组赋值e="china",只有在定义时可以,如答案A所示。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fresnel_yufei
2008-09-17 · TA获得超过821个赞
知道小有建树答主
回答量:653
采纳率:0%
帮助的人:0
展开全部
B是对的,p="china"
是吧"china"的首地址赋给p,所以是正确的
D是错的,a="china"
这种赋值方法是不对的,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shidingneng
2008-09-17 · TA获得超过716个赞
知道答主
回答量:162
采纳率:0%
帮助的人:159万
展开全部
B)char a〔10〕,*p=a;p="china" //给指针定义并赋初值应该是这样:*p=&a;后面调用应为:*p=="china"

D)char a〔10〕,*p;p=a="china" //其中p是指针,不能把变量a赋给一个指针p;后面应改为:p=&a;*p="china";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jdzfjfhnui
2008-09-17 · TA获得超过289个赞
知道小有建树答主
回答量:533
采纳率:0%
帮助的人:0
展开全部
D a="china" 就错 了。a是代表地址,访问数组元素要下标
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二月庐
2008-09-17 · TA获得超过157个赞
知道小有建树答主
回答量:372
采纳率:0%
帮助的人:226万
展开全部
a[10]被定义为一个能容纳10个字符的字符数组,C语言里一般用数组名来标识这个数组的首地址。
B 项中 p="china",指针p保存的实际上是字符串(在编译器内以字符数组的形式处理)的首地址,他的值是&a[0],指向第一个字符'a'。变量a即数组名,也代表数组的首地址。char a[10],*p=a;p="china";保存的只是第一个字符。
D中数组名a只是起标识作用,并不能参与同指针的代换赋值,(想想字符串复制功能并不利用数组名和指针代换),牵涉到数组内部元素,就要使用下标了。这种写法是错误的。
也不用象楼上的那样,将a改成&a,原因已经说过。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式