char a[9]={1,2,3,4,5,6,7,8.9} char * p; p=a; 如果给

chara[9]={1,2,3,4,5,6,7,8.9}char*p;p=a;如果给a[1]赋值,可以用p[1]=11;这种形式吗,还是只能用a[1]=11;这种形式对它... char a[9]={1,2,3,4,5,6,7,8.9}
char * p;
p=a;

如果给a[1]赋值,可以用p[1]=11;这种形式吗,还是只能用a[1]=11;这种形式 对它进行赋值。
展开
 我来答
De__eD
2014-01-19 · TA获得超过718个赞
知道答主
回答量:414
采纳率:100%
帮助的人:80.1万
展开全部

#include<stdio.h>


void main()
{
char a[9]={'1','2','3','4','5','6','7','8','9'};
char *p;
p=a;
p[1]='a';
a[3]='b';
for(int i=0;i<9;i++)
printf("%-4c",a[i]);
printf("\n");
}

字符数组赋值如果想赋值1,2,之类的要用单引号'',p[1]=11; 和 a[1]=11;都是是可以赋值的,不过结果不会是11,如果使用p[1]=‘11’; 和 a[1]=‘11’;结果会是1,因为字符只有一位。用代码尝试一下就知道结果。

fengxue1573
2014-01-19
知道答主
回答量:11
采纳率:0%
帮助的人:3.7万
展开全部
实践验证真理,你自己编一段代码来测试不就行了,先P[1]=11;然后看a[1]有没有变化,希望可以帮到你!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Moo琳
2014-01-19 · 超过18用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:32.7万
展开全部
当然只能用第二种形式,第一种形式里的p表示的是指针名,是把a赋给p,也就是把a里的字符存在p表示的位置里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友783a00f
2014-01-19 · TA获得超过207个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:112万
展开全部
两种都可以的,p=a;是将指针指向a数组的首地址,p[1]实际上还是修改了数组a[1]的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2014-01-20 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6522万
展开全部
可以用a[1]=11,也可以用p[1]=11,还可以用*(a+1)=11和*(p+1)=11。它们都是等价的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式