指向单一变量的指针 及其 二级指针

指向单一变量的指针 及其 二级指针


一.整型

1.指向单一变量的指针 及其 二级指针

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int a=10;
 5     int *ptoa;
 6     int **ptopa;
 7     ptoa=&a;ptopa=&ptoa;
 8     printf("&ptopa:%d 
",&ptopa);
 9     printf("&ptoa:%d,ptopa:%d 
",&ptoa,ptopa);
10     printf("&a:%d,ptoa:%d,*ptopa:%d 
",&a,ptoa,*ptopa);
11     printf("a:%d,*ptoa:%d,**ptopa:%d 
",a,*ptoa,**ptopa);
12     return 0;
13 }

运行结果:

&ptopa:2686724
&ptoa:2686728,ptopa:2686728
&a:2686732,ptoa:2686732,*ptopa:2686732
a:10,*ptoa:10,**ptopa:10

等价关系:

1.&ptopa  即二级指针地址

2.&ptoa=ptopa  即指针地址

3.&a=ptoa=*ptopa  即变量地址

4.a=*ptoa=**ptopa  即变量内容10

小结:

明确:1.变量名 2.地址 3.内容

机器存储的只有地址和内容.在代码中,变量名=内容

例如 int a=10;a即为10

int *p=&a;指针存储的为a的地址,即内容为a地址,变量名p即为a的地址

两个重要符号1.取址符& 2.解释符*

简略表格

  int a int *ptoa int **ptopa
地址 &a &ptoa &ptopa
内容 a=10 ptoa=&a ptopa=&ptoa
加解释符   *ptoa=*(&a)=10

*ptopa=*(&ptoa)=ptoa=&a

**ptopa=*(*ptopa)=*(&a)=a


原文地址:https://www.cnblogs.com/someblue/p/3364418.html