指针*和**的理解
2021-05-08 本文已影响0人
Mr_HeH
代码
#include <stdio.h>
int main()
{
int size = sizeof(double);
printf("----%d\n", size);
int a = 3;
int *p = &a;
printf("-%p---%p\n", p, &a);
printf("---%d\n", *p);
int **p1;
p1 = &p;
printf("p1----%p---%d\n", p1, **p1);
int ***p2;
p2 = &p1;
printf("p2----%p---%d--%p\n", p2, ***p2, **p2);
printf("a的地址:%p\n", &a);
printf("p存放a的地址:%p\n", p);
printf("p1存放p的地址:%p---%p\n", p1, *p1);
printf("p2存放p1的地址:%p---%p---%p\n", p2, *p2, **p2);
return 0;
}
结果
a的地址:0x7ffeecf15544
p存放a的地址:0x7ffeecf15544
p1存放p的地址:0x7ffeecf15538---0x7ffeecf15544
p2存放p1的地址:0x7ffeecf15530---0x7ffeecf15538---0x7ffeecf15544
总结
int * p 表示申明一个int类型的指针变量,变量名为p
取值* p
int ** p表示申明一个指向指针的指针变量
取值** p