c++指针与数组首地址的问题!

最近在学指针这一块,遇到点麻烦!chara[]={'a','b','c','d','e'}char*p=NULLp=a//指针指向数组首地址//类似上面的代码,&a不也表... 最近在学指针这一块,遇到点麻烦!
char a[]={'a','b','c','d','e'}
char *p=NULL
p=a //指针指向数组首地址
//类似上面的代码,&a不也表示该数组的首地址吗,那我把p=a改成p=&a为什么不行。什么时候该用&a,什么时候改用a?
展开
 我来答
百度网友2ad68ac
2012-04-12 · TA获得超过101个赞
知道答主
回答量:69
采纳率:0%
帮助的人:47.2万
展开全部
p=a 等价于 p=&(a[0])

具体讲: 可以认为a这个变量中放的是数组的首地址,即数组第一个元素的地址, a本身占一个存储单元(char*), 那么p=&a实际上是取的a的地址, 而非数组的地址

在具体一点: 假设数组的首地址是INDEX1(那么INDEX1就是a[0]的地址了~), 那么这个值存在a中, 而a放在地址为INDEX2的内存位置, 其值为INDEX1
p=a 结果为 p=INDEX1, 这个是你想要的
p=&a 结果为 p=INDEX2, 这个不是你要的吧
p=&(a[0]) 结果为 p=INDEX1, 也行

个人理解, 如有偏差, 敬请指正~
tianzixuan418
2012-04-12 · TA获得超过118个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:177万
展开全部
a代表首地址是常量,a的值就是数组的首地址,但如果用取地址符,要用P=&a[0],你直接用&a,相当于用P=*a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淦海瑶s1
2012-04-12 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:761万
展开全部
从语法上来说p=&a这句话是没有错误的。都是指针之间的赋值

数组名,本身就是一个指针,这个你应该知道,他指向数组的首地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1d106d9
2012-04-12 · TA获得超过278个赞
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:148万
展开全部
a是首元素的地址,++a偏移一位后是指向下一个元素地址
&a是整个数组的地址!++a偏移一位后是指向最后一个元素的下一位元素地址!
忘采纳!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fuzhenhui111
2012-04-12
知道答主
回答量:5
采纳率:0%
帮助的人:8040
展开全部
&a怎么还是首地址呢?&a[0]才是首地址啊,a本身就是一个指针,指向数组首地址,如果找指针的地址会用到&a,不过几乎不会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式