1、指针的层级定义
int a=5;
int *p=&a ;// 定了一个指针变量,指向一个新空间,并对这个新空间存值;
int *b=new int(5) ;与上等价
int **ip=&p; // ip二级指针变量,指向指针变量的地址
cout<<ip // 取p的地址
cout<<*ip; 取a的地址
cout<<**ip; 取a的值
int *c=nullprt;指向空指针
2、多维指针
int arry[2][3] = { {1, 2, 3}, {4,5,6} };
cout << arry<<endl; //数组明为索引号[0][0]的地址
cout << *arry << endl; //对[0][0]地址取值
cout << arry [1] << endl;//第二行的首地址,与 *(arry+1) 和 arry+1
cout << *arry[1] << endl;
cout <<*(arry+1)<< endl; //第二行的首地址
cout << **(arry + 1) << endl; 取第二行的首地址的值
cout << *(*(arry + 1)+2) << endl; // 取[1][2]值
int* p1 = arry[0]; //此定义指针只能指向一维数组
int (* p2)[3] = arry; //此定义指针只能指向二维数组 ,返回首地址
cout << *p2 << endl; //取地址
cout << **p2 << endl; //取值
cout << *( * (p2 + 1) + 1 )<< endl; //取任意角标的值