取地址 & 与解引用 * · 指针存地址,*p 顺着地址找回变量
p = &a 让 p 记住 a 的地址;*p 沿地址访问 a 本体,*p = 9 改的就是 a。& 与 * 互为逆操作。
指针变量 p(存的是地址)
普通变量 a(存的是数据)
变量名
a
值 value
3
地址 &a
0x1000
指针名
p
存的值
0x1000
含义
= a 的地址,故 p 指向 a
p 指向 a
*p 顺着地址找回 a
int *p =
&a
;
&a 取出 a 的地址 0x1000,交给指针 p 保存
*p
= 9;
*p 解引用 → 顺地址找到 a,写 9,等价于 a = 9
& 取地址
变量 a ──> 地址 &a(0x1000)
由「东西」拿到「它在哪」
* 解引用
地址 p ──> 变量本体 *p(即 a)
由「在哪」找回「东西」
⇄
▶ 重播