===================20160904update===============================
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
/***************** 数组指针 相关总结 *********************/
int main()
{
int n[][3] = {10,20,30,40,50,60};
int (*p)[3] = n; // p 是 int[3]* 一维数组int[3]*是 数组地址 p[0]<->*(p + 0)<->*p 是int[3]为一维数组数组首元素地址 注意 n + 1 也是int[3]*
// 但是n是 int[2][3] 二维数组首元素地址 n+1 越过int[3]一维数组
// &n是int[2][3]* 二维数组地址 &n + 1 越过整个二维数组
// n+0 n+1 ... 后是int[3]*
// *(n + 1) <-> n[1] *(n + 0)<->n[0] 为int[3] 一维数组首元素地址 (n+0为int[3]* 一维数组地址 阶引用---->*(n+0)为int [3] 一维数组首元素地址)
// *(*(p ) + 1) 、*(p[0] + 1)、 (*p)[1]是一样的
cout<<p[0][1]<< " " <<*(*(p) + 1)<< " "<<*(p[0] + 1)<< " " <<(*p)[1]<<endl; // 20 20 20
cout<<n[0][1]<< " " <<*(*(n) + 1)<< " "<<*(n[0] + 1)<< " " <<(*n)[1]<<endl; // 20 20 20
p = n;
// 10 20 30
cout<<p[0][0]<< " " <<*(p[0]+ 1)<< " "<<(*p)[2]<<endl;
return 0;
}
本文出自 “城市猎人” 博客,请务必保留此出处http://alick.blog.51cto.com/10786574/1720139