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个回答
展开全部
p=a="computer";明显是错的,a是一个字符串,p你定义为指针,指向a,所以p就是a字符串的首地址,p=”computer”,编译时肯定会说字符串不能赋值给指针,你应该写成*p=”computer”;p指向a,那么*p等同于a(都表示字符串的第一个元素),
p有和&a(&是取地址符&a表示a的地址)是等价的。
p有和&a(&是取地址符&a表示a的地址)是等价的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p=a="computer"有问题。因为a是字符型数组
字符串数组不能用"="直接赋值, 即a="computer"是不合法的。
(a)选项不正确,理由已经写了
字符串数组不能用"="直接赋值, 即a="computer"是不合法的。
(a)选项不正确,理由已经写了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char数组 如果要赋初值只能在定义同时赋,否则只能一位一位赋。
如果你是要输出整个字符串的话应该是 printf("%s\n",p);
你的原句只输出a[0];
如果你是要输出整个字符串的话应该是 printf("%s\n",p);
你的原句只输出a[0];
追问
我主要是问
char a[20],*p;
p=a="computer"; 这里为什么错
追答
哦哦
就是我说的第一句哇~ char数组 如果要赋初值只能在定义同时赋,否则只能一位一位赋。
至于你问楼下的楼下的那个, 因为a是数组,p是指针。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char a[20];a="computer";这样是不行的吧
用字符串常量初始化字符数组,只能在定义的时候
还有,除了A,其它应该都是对的啊
用字符串常量初始化字符数组,只能在定义的时候
还有,除了A,其它应该都是对的啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char a[20]="computer",*p;
p=a;
printf("%s\n",p);
不能先定义后赋值!
p=a;
printf("%s\n",p);
不能先定义后赋值!
更多追问追答
追问
char a[20],*p=a;
p="computer";
printf("%s\n",p); 可是这样写也是对的
追答
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。
p=a="computer";a数组前以定义但是没赋值,后再赋值是不正确的。所以选A,不能先定义后赋值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询