C语言题目

chara[20],*p;p=a="computer";printf("%c\n",*p);这也写为什么不对请说明原因算了我这样问好了下面说明中,不正确的是_______... char a[20],*p;
p=a="computer";
printf("%c\n",*p);
这也写 为什么不对 请说明原因
算了 我这样问好了

下面说明中,不正确的是________。
(A) char a[20],*p; p=a=”computer”;
(B) char a[20]=”computer”;
(C) chara[20],*p=a; p=”computer”;
(D) char *a; a=”computer”;
求高手解释下~!没高手解释下么????~~!!!让我明白了自然采纳,楼下的解答都不能让我理解~!!!!我再加20分啊~~求高手给出专业解答~~~~!!!!!!!!!!!
展开
 我来答
dhf董海峰
2013-05-01
知道答主
回答量:12
采纳率:0%
帮助的人:4万
展开全部
p=a="computer";明显是错的,a是一个字符串,p你定义为指针,指向a,所以p就是a字符串的首地址,p=”computer”,编译时肯定会说字符串不能赋值给指针,你应该写成*p=”computer”;p指向a,那么*p等同于a(都表示字符串的第一个元素),
p有和&a(&是取地址符&a表示a的地址)是等价的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尛豪__
2013-05-01
知道答主
回答量:30
采纳率:0%
帮助的人:30.5万
展开全部
p=a="computer"有问题。因为a是字符型数组
字符串数组不能用"="直接赋值, 即a="computer"是不合法的。
(a)选项不正确,理由已经写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火焰遁地鼠
2013-05-01 · 超过26用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:52.7万
展开全部
char数组 如果要赋初值只能在定义同时赋,否则只能一位一位赋。
如果你是要输出整个字符串的话应该是 printf("%s\n",p);
你的原句只输出a[0];
追问
我主要是问
char a[20],*p;
p=a="computer"; 这里为什么错
追答
哦哦
就是我说的第一句哇~ char数组 如果要赋初值只能在定义同时赋,否则只能一位一位赋。
至于你问楼下的楼下的那个, 因为a是数组,p是指针。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bangpeng64233
2013-05-01 · 超过18用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:38.9万
展开全部
char a[20];a="computer";这样是不行的吧
用字符串常量初始化字符数组,只能在定义的时候
还有,除了A,其它应该都是对的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b36f72a
2013-05-01 · TA获得超过1417个赞
知道小有建树答主
回答量:744
采纳率:0%
帮助的人:542万
展开全部
char a[20]="computer",*p;
p=a;
printf("%s\n",p);
不能先定义后赋值!
更多追问追答
追问
char a[20],*p=a;
p="computer";
printf("%s\n",p); 可是这样写也是对的
追答
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。
p=a="computer";a数组前以定义但是没赋值,后再赋值是不正确的。所以选A,不能先定义后赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式