本质:所有的指针都是用来保存地址的,只不过因为保存地址的数据类型不同,从而拥有多种指类型.
规则:
一级指针变量是用来保存普通变量的地址.
二级指针变量是用来保存一级指针变量本身自己的地址.
三级指针变量是用来保存二级指针变量本身自己的地址.
………
以二级指针为例:
定义方式 如下:
数据类型 ** 变量名;
int a = 10;
int *p = &a;
int **q = &p;
在32bit的系统中,所有的指针变量都是4bytes
int a[5] = {10,20,30,40,50}; int *p = a; int **q = &p; //q <===>&p *q <===>*(&p) *q<===>p 而根据一维数组得出结论: a[i] <===>*(a + i)<===>*(p + i)<===>p[i] 且当前 *q<===>p,故 *(p + i)<===>p[i]<===>*(*q + i) <===>(*q)[i]
通过这节课的学习,对多级指针的使用,指针的本质有了更深的认识,很有收获。