解引用(dereference)就是:通过指针找到它指向的那个"东西"
在 C 语言里用 * 表示。
一、最简单例子
cpp
int a = 10;
int *p = &a;
这里:
cpp
p 存的是 a 的地址
解引用意思是:顺着 p 这个地址,找到 a
cpp
*p 顺着 p 这个地址,找到 a
二级指针解引用(重点)
cpp
int a = 10;
int *p = &a;
int **q = &p;
*q 得到:p(一级指针)
三、再解一层(关键区别)
cpp
**q
等价于
*p = a = 10
四、总结层级
| 表达式 | 得到什么 |
|---|---|
q |
指向 p |
*q |
p(一级指针) |
**q |
a(值) |
五、用链表理解
struct Node** head;
那么:
1️⃣ head
指向 main 里的 head
2️⃣ *head
main 里的 head(第一个节点指针)
3️⃣ **head
第一个节点本身