首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

看一下这表示的是什么意思?该怎么解决

2012-02-29 
看一下这表示的是什么意思?intarr[][4]{1,2,3,4,5,6,7,8,9,10,11,12}cout arr arr endlcout

看一下这表示的是什么意思?
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;

热点排行