C语言指针/指向指针的指针

别来无恙 提交于 2020-01-08 04:36:12

先看一段代码:

 1 #include <stdio.h> 2  3  int main () 4 { 5     int i = 30; 6     int*    pi; 7     int**   ppi; 8  9     pi = &i;10     ppi = &pi;11 12     printf("i = %d;\t &i = %d\n", i, &i);13     printf("pi = %d;\t &pi = %d;\t *pi = %d\n", pi, &pi, *pi);14     printf("ppi = %d;\t *ppi = %d;\t &ppi = %d;\t **ppi = %d\n", \15             ppi, *ppi, &ppi, **ppi);16 17     return 0;18 }

执行结果:

i = 30;  &i = -1013781316

pi = -1013781316;        &pi = -1013781328;      *pi = 30

ppi = -1013781328;       *ppi = -1013781316;     &ppi = -1013781336;     **ppi = 30

下面用一个简单的图来说明一下:

定义指针类型时,用下面的格式,感觉更容易理解:

int *p;    =>   int* p;

int **pp;   =>   int** pp;

=>右边的写法可以更加明确的看出int*, int**是变量类型,p, pp是变更名。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!