黑马程序员技术交流社区

标题: 这几个数组地址的加减 &arr+1 &arr[]+1 arr[]+1 。。有什么不... [打印本页]

作者: RonaldoYang    时间: 2016-4-8 15:52
标题: 这几个数组地址的加减 &arr+1 &arr[]+1 arr[]+1 。。有什么不...
求解。。。

作者: 烛风小糊涂    时间: 2016-4-8 16:49
不知楼主是不是没有在取地址符后面打括号?
如果是 &arr+1 的话,貌似没有什么意义,但输出的是地址,没讲过,不懂;
如果是 &(arr + 1)的话,这个编译会报错;
&arr + 1 同理;

至于 arr + 1 , 这个是列指针,是 arr[1] 这个元素的地址。

作者: UKnowINeedYou    时间: 2016-4-8 19:35
看看这个就清楚啦  

行指针

转换成:列指针

列指针等价表示

内容

内容等价表示

含义

a或a+0

*a

a[0]

*a[0]

*(*a)

a[0[0]

a+1

*(a+1)

a[1]

*a[1]

*(*(a+1))

a[1][0]

a+2

*(a+2)

a[2]

*a[2]

*(*(a+2))

a[2][0]

对于元素a[1][2],其地址用列指针表示为a[1]+2,等价表示为*(a+1)+2,那么内容是*(*(a+1)+2)


列指针

行指针

等价表示

含义

a[0]

&a[0]

&a或&(a+0)

第0行

a[1]

&a[1]

&(a+1)

第1行

a[2]

&a[2]

&(a+2)

第2行







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2