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分啊~~求高手给出专业解答~~~~!!!!!!!!!!! 展开
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分啊~~求高手给出专业解答~~~~!!!!!!!!!!! 展开
8个回答
展开全部
printf()中的应该是p
追问
我主要是问
char a[20],*p;
p=a="computer"; 这里为什么错
追答
a是数组名,只能存储首地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-01
展开全部
a数组的每一个元素都是字符型,char a[20]="computer"可以按照整数数组那样理解为把computer的字符一个个存进a[20]里面。
p是指向char型的指针,字符串都是以字符数组的方式存储的,所以“computer”这个字符串也是字符数组,p=“computer”相当于把这个字符数组的起始地址赋给p,即p指向第一个字符“c”。
而a是数组的首地址,可以理解为指针,但它是常量,不能作为左值用来存储地址,p=a=computer是把a当成是指针变量来用了,所以不正确。
p是指向char型的指针,字符串都是以字符数组的方式存储的,所以“computer”这个字符串也是字符数组,p=“computer”相当于把这个字符数组的起始地址赋给p,即p指向第一个字符“c”。
而a是数组的首地址,可以理解为指针,但它是常量,不能作为左值用来存储地址,p=a=computer是把a当成是指针变量来用了,所以不正确。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实他们都回答得很好理解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询