C语言“指针”及“指针的指针”图示

来自《高质量程序设计指南C++/C语言》 

    int     i = 100;
    int*   pI = &i;      // 声明指针变量并初始化为i的地址
    int**  ppI = &pI;   // 指针的指针

我个人的理解是:

  • 把指针pl当做一个数值,但是因为他已经是一个指针
  • 所以本身所携带的桂冠(*号)将世袭
  • 于是在对pl取地址的时候,需要两个**(体现世袭)

图示如下 :

其他:

  1. 【int*  a,b,c】; 等价于 【int  *a,b,c】b和c不是指针
  2. 指针就是一个值,所以指针【++】时,它会指向序列中的后一个元素 

猜你喜欢

转载自blog.csdn.net/qq_39883358/article/details/86765695