一句话:`&` 就是 **"问地址"** ------ 就像问快递柜"我的包裹在哪个格子里?"
int a = 10;
printf("a 的值: %d\n", a); // 输出: 10
printf("a 的地址: %p\n", &a); // 输出: 0x7ffd... (十六进制地址)
|-----|----------------------|
| 表达式 | 含义 |
| a | 变量的值(10) |
| &a | 变量的地址(0x7ffd...) |
最常见的 2 个用法
1.scanf 传地址
scanf("%d", &a); // 告诉 scanf:把输入的值塞到 a 的地址里
为什么 scanf 要 &a?因为 scanf 需要知道 "往哪儿写"。
2.指针赋值
int *p = &a; // p 存了 a 的地址,p 就是指向 a 的指针
注意
& 只能对变量用,不能对常量/表达式:&10 ❌
& 和 * 是互逆的:*&a == a ✅
总结
& = 取地址 = "变量住哪儿?"
配合 scanf、指针使用,是 C 语言入门必会的基础操作符。
如果你觉得有帮助,欢迎点赞、收藏、评论,让更多人看到!