- 在开始学习指针的时候定义指针类型例如:
int *p=&a;
- 在这里我把*p看成了一个整体,实际上这种理解是不对的。正确的理解方式应该是:
int* p;
p=&a;
- 这里不同就在于把
int*
看成一个整体,把它当成和int
一样的定义类型。同理定义多级指针int** p
前面的int**
也是一种定义类型,此时的p
指向*p
的地址。*
其实可以理解为提取的意思*p
的意思就是从p
地址上提取上面的值也就是*p
。**p
其实就是提取*p
地址上的值。这里*p
和p
其实都是下一级指针地址的值。 - 我们在声明
int* p
的其实,也程序也默认给p
存储开辟了0x01
空间如图: