指针(指向指针的指针):

关于C++指针的基本理解:

  1.指针:存储某一块内存的地址,而其他变量是直接存储值

      int *p  //p是一个指向整型变量的内存空间的指针变量,

          //其中存的就是a这个整型变量的内存的地址。

      P=&a  

  2.指针变量:指针变量都是用于保存某一内存的地址的变量,指针变量不是内存地址

  3.“*”加上指针变量名表示取指针地址所存储的值,这种方式下,“*”是取值符;加上变量名会取出指向的地址所存储的值。

 1 #include <stdio.h>
 2 int main() 
 3 {
 4         int a = 4;
 5         int *p;
 6          p = &a;
 7         int **q;  //声明一个指针,指向我们已经有的指针p
 8          q=&p;     //从内存上来想,指针变量p也是保存在内存里的,
 9                    //所以它的地址也应该是可以通过&p获得到的
10    //输出指针变量p在内存中的地址、输出指针变量p的所存储的p的内存中的地址
11       printf("p in %p, q = %p\n",&p,q);
12 
13 //输出整型变量a的地址,指针变量p所存储的变量a的地址,*q取出的值
14       printf("a in %p, p = %p, *q = %p\n",&a, p, *q);
15 
16 //输出整型变量a的值,p所存的地址内的值,q所存的地址内的值
17        printf("a = %d, *p = %d, **q = %d\n",a,*p,**q);
18      return 0;
19  }

输出结果:

p in 0x7ffe39988ee8, q = 0x7ffe39988ee8                                    
a in 0x7ffe39988ee4, p = 0x7ffe39988ee4, *q = 0x7ffe39988ee4               
a = 4, *p = 4, **q = 4
posted @ 2017-05-20 16:34  稻草人部落  阅读(302)  评论(0编辑  收藏  举报