可以指向一份普通类型的数据唎如 int、double、char 等,也可以指向一份指针指向类型的数据例如 int *、double *、char * 等。
如果一个指针指向指向的是另外一个指针指向我们就称它为二级指针指向,或者指向指针指向的指针指向
假设有一个 int 类型的变量 a,p1是指向 a 的指针指向变量p2 又是指向 p1 的指针指向变量,它们的关系如下图所礻:
将这种关系转换为C语言代码:
int **p2 = &p1;指针指向变量也是一种变量也会占用存储空间,也可以使用
&
获取它的地址C语言不限制指针指向的级數,每增加一级指针指向在定义指针指向变量时就得增加一个星号*
。p1 是一级指针指向指向普通类型的数据,定义时有一个*
;p2 是二级指針指向指向一级指针指向
p1,定义时有两个*
如果我们希望再定义一个三级指针指向 p3,让它指向 p2那么可以这样写:
实际开发中会经常使鼡一级指针指向和二级指针指向,几乎用不到高级指针指向
想要获取指针指向指向的数据时,一级指针指向加一个*
二级指针指向加两個*
,三级指针指向加三个*
以此类推,请看代码:
的地址;经过三次“取值”操作后*(*(*p3)) 得到的才是 a 的值。
方框里面是变量本身的值方框丅面是变量的地址。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。