黑马程序员技术交流社区

标题: 已被指针弄蒙圈,一个小小得问题,求高人大神指点,感... [打印本页]

作者: lixiaob626    时间: 2015-9-5 21:21
标题: 已被指针弄蒙圈,一个小小得问题,求高人大神指点,感...
int a[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
访问 第一行的第1个元素地址表示:

a + 1 =  &a[1]  =  a[1]  =  &a[1][0]  =  *(a + 1)

关于这个 a + 1 = *(a + 1) 不是很明白?a + 1是一个地址,而 *(a + 1)是一个值 他们能相等嘛? 第一感觉是这样的,但有人说他们确实相等。求高人、大神指点。。。感激不尽!


作者: 我张云杰    时间: 2015-9-5 22:00
a + 1是{5,6,7,8}这行整个数组的地址;*(a + 1)是{5,6,7,8}这行首元素的地址.
作者: pyy061    时间: 2015-9-5 23:18
因为你的a+1不是个指针,你前面并没有int (*p)[4]=a;所以你后面写的*(a+1)指向的是个地址




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