203,若有定义: int a[5]; 则对数组中首元素的地址可以表示为a.&a不对吗?

 我来答
Ch陈先生
高粉答主

2020-07-15 · 互联网新手写文章老手
Ch陈先生
采纳数:331 获赞数:140947

向TA提问 私信TA
展开全部

不对。若有定义:int a[5],则a数组中首元素地址可以表示为a,a[0],*(a+0),*a,&a[0]。

数组及数组元素的地址表示为:a是二维数组名,也是二维数组0行的首地址,等于1000。a[0]是第一个一维数组的数组名和首地址,因此也为1000。

*(a+0)或*a是与a[0]等效的,它表示一维数组a[0]0号元素的首地址。也为1000。&a[0]是一维数组a的0列元素首地址,同样是1000。因此,a,a[0],*(a+0),*a,&a[0]是相等的。都是a数组中首元素地址。

扩展资料:

a表示数组名,也代表数组首地址。此首地址并非a[0][0]元素的地址,而是a[0]这个数组的地址(虽然具体数值一样,但意义不同);所以对于2为数组a[3][3];a+1表示的是一维数组a[1]的地址,

*(a+1)表示的是数组a[1]中第一个元素的地址,所以*(*(a+1)+2)表示数组a[1]中第3个元素的值也就相当于a[1][2],其值为6;

ifeiying
2012-12-05 · TA获得超过230个赞
知道小有建树答主
回答量:253
采纳率:100%
帮助的人:145万
展开全部
楼上说的对,值一样但意义不一样;
a是首个元素的地址,类型是int *,可以用int *p; p = a;
&a是整个数组的首地址,类型是int (*)[5],可以用int (*q)[5]; q = a。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bfbd1d2
2012-12-05 · TA获得超过846个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:167万
展开全部
可行的,而且两个含义不太一样
&a: 指向一位数组a,即这一数组的首地址
a : 第1个元素的地址
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苏丶雨然
2012-12-05 · TA获得超过391个赞
知道答主
回答量:45
采纳率:0%
帮助的人:10.5万
展开全部
对于数组 数组名就是其首地址。。所以a就是a[0]的地址。。&a应该是2重指针了。。所以不行吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
benbearlove
2012-12-05
知道答主
回答量:19
采纳率:0%
帮助的人:4.1万
展开全部
&a和a是同一个地址,只是签名的取了别名而已。没什么本质区别,习惯上还是称呼第二种说法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式