看一下这表示的是什么意思?
int arr[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
cout < < "arr = " < < arr < < endl;
cout < < "arr + 2 = " < < arr + 2 < < endl;
cout < < "*(arr + 2) = " < < *(arr + 2) < < endl;
上面的arr + 2 反回的怎么和*(arr + 2)返回的一样?
个人理解:*(arr + 2) 是一个值,而arr + 2 是个地址!两个不可能会一样的!
高手们说解释一下呀,先谢谢了!
[解决办法]
上面的大叔~貌似错了哈~~
--------------------------------
析:
二维数组:
{{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}}
由于是二维数组,所以arr=arr[0][0],arr+1=arr[1][0],arr+2=arr[2][0];
即:arr+2 指向的是第三行的第一个数据arr[2][0];
而理解*(arr+2)比较蹩脚点;
二维数组的本质,偶把它的本质理解为指针的指针
只要能理解这点,那么*(arr+2)就不难理解了;
奇数个*表示取址,偶数个*表示取值;
所以**(arr+2)才是得到相应的值:9;