C语言中二维数组的引用和地址有什么区别吗?比如a[i]地址&a[i],a+i,p+i,引用a[i],*(a+i)(这不应该是地址吗

[复制链接]
查看11 | 回复1 | 2013-10-9 21:44:24 | 显示全部楼层 |阅读模式
你这种情况比较复杂!一个数组名本身是一个常量地址,比如数组a[10],a就是该数组在内存分配空间的起始地址。要引用数组中各个元素。a是数组专用的方法,它本身就是指a往后偏移i个长度内存空间里存放的内容,因此用&取地址就变成了该内容对应的地址;也可以用*(a+i),a+i指从地址a偏移i个长度(此长度不是字节,取决于数组存储的元素类型)的地址(注意此时它不是指里面的内容),因此加上*以取到里面的内容。也就是说a指内容,因此可以用&取其地址;而a+i指地址,因此可以用*取其内容,二者形式不同,都可以一样用。我是这样理解的,仅供参考。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行