关于C语言中数组地址的问题 求高手解

假设intaddr[5]为一个数组那么&addr[3]-addr表示什么意思,它的值是多少?假设&addr[3]的地址为0x8000,addr的地址为0x7000,为什么... 假设int addr[5]为一个数组 那么&addr[3]-addr 表示什么意思,它的值是多少?
假设 &addr[3]的地址为0x8000,addr的地址为0x7000,为什么结果不是 0x1000.求高手解
展开
 我来答
澶漫1
2013-12-05 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:118万
展开全部
意思是数组第三个成员的地址减去数组首地址,值为3
更多追问追答
追问
假设 &addr[3]的地址为0x8000,addr的地址为0x7000,为什么结果不是 0x1000.求高手解
追答
如果addr的地址为0x7000
那么addr[3]的地址应为0x700c,而不是0x8000
如果addr的类型为char,那么addr[3]的地址为0x7003
如果addr的类型为short,那么addr[3]的地址为0x7006
这个与数据类型有关
tianyuwuse
2013-12-05 · TA获得超过1117个赞
知道小有建树答主
回答量:494
采纳率:100%
帮助的人:241万
展开全部
一楼朋友的回答是正确的,至于你问的为什么结果不是你想的结果,这是因为你的假设是不成立的。结果为从addr 到 &addr[3]之间存储单元的个数即 3,因为每个单元都是 int 型的,所以具体地址的差值为3X4 = 12个字节。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿炳3050715861
2013-12-05
知道答主
回答量:31
采纳率:0%
帮助的人:1.4万
展开全部
&addr[3]代表这个数组中第三个元素的地址,具体值,要有系统分配。
追问
&addr[3]-addr的地址值相减怎么也不会是3呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式