C语言数组赋值指针问题?

*p=a;和p=a;有什么区别?a是数组名... *p=a;和p=a; 有什么区别?a是数组名 展开
 我来答
若以下回答无法解决问题,邀请你更新回答
金色潜鸟
2017-12-18 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5597万
展开全部
在声明里 用:
int a[3]={1,2,3};
int *p=a,i;
for (i=0;i<3;i++) printf("%d %d\n",*(p+i),p[i]);
在语句里用:
int a[3]={1,2,3};
int *p,i;
p=a;
for (i=0;i<3;i++) printf("%d %d\n",*(p+i),p[i]);
两者效果一样。
语句里,p 是地址,语句里,*p 是指向的值。
声明里,int *p 是指针, 声明里,int p 是变量。
外形相同,在语句里 和 在声明里 意思不同。(形式逻辑在c语言里,不成立!)。
赋值号右边的 a 是数组的首地址。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-12-18
展开全部
给出的信息不完整啊, 比如 p是怎么定义的? *p=a是在p定义时赋值给p的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式