#include<stdio.h> void main() { int a[]={1,2,3,4,5,6,7,8,9}; int *p=a; printf("%d\n", p[3]); }

这段代码中为啥可以用p[3]来引用数组元素,感觉应该是*p[3],但又报错。希望大家给与解答,谢谢了... 这段代码中为啥可以用 p[3]来引用数组元素,感觉应该是*p[3],但又报错。希望大家给与解答,谢谢了 展开
 我来答
kaixingui2012
2012-06-06 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6254万
展开全部
int a[10]; 表明a是个数组,a是数组名,数组名在C中就解释为一个地址常量,代表数组的首地址。
int *p ; 表明p是个指针变量
p=a; 这时的p中存储的是数组a的首地址,此时,我们就可以把p当作a一样对待了,因此,可以用p[3]表示a[3], 为什么?呵呵,C就是这样规定的。
不知道LZ怎么就把p[3]看成一个指针了?再好好看看书。
唐祯琪
2012-06-06
知道答主
回答量:75
采纳率:0%
帮助的人:25.6万
展开全部
*p代表指针,已经指向数组了,用p[3]就是引用数组了
追问
p[3]感觉是一个指针,但现实的是p[3]数组中元素的数值,怎么看就是不相同呀。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1cf638f
2012-06-06
知道答主
回答量:8
采纳率:0%
帮助的人:7.7万
展开全部
p[3]中p相当于a,如果想用指针,可以用*(p+3)
追问
p[3]和*(p+3) 为啥相等?求细讲。p[3]感觉是一个指针,但现实的是p[3]数组中元素的数值,怎么看就是不相同呀。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式