C语言指针解引用

C语言指针解引用

解引用(dereference)就是:通过指针找到它指向的那个“东西”

在 C 语言里用*表示。

一、最简单例子

int a = 10; int *p = &a;

这里:

p 存的是 a 的地址

解引用意思是:顺着 p 这个地址,找到 a

*p 顺着 p 这个地址,找到 a

二级指针解引用(重点)

int a = 10; int *p = &a; int **q = &p;

*q 得到:p(一级指针)

三、再解一层(关键区别)

**q

等价于

*p = a = 10

四、总结层级

表达式得到什么
q指向 p
*qp(一级指针)
**qa(值)

五、用链表理解

struct Node** head;

那么:

1️⃣head

指向 main 里的 head

2️⃣*head

main 里的 head(第一个节点指针)

3️⃣**head

第一个节点本身