C语言取地址符 `&` 极简教程

一句话:`&` 就是 **"问地址"** ------ 就像问快递柜"我的包裹在哪个格子里?"

复制代码
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 语言入门必会的基础操作符。


如果你觉得有帮助,欢迎点赞、收藏、评论,让更多人看到!

相关推荐
wuminyu1 小时前
LockStack在虚拟线程Mount和Unmount拷贝过程剖析
java·linux·c语言·jvm·c++
Felven1 小时前
B. Reverse a Permutation
c语言
Logic1012 小时前
C语言/数据结构排序题解:三个数的最大乘积——排序后比较两种候选情况
c语言·数据结构·数组·排序·时间复杂度·算法题·负数处理
无忧.芙桃2 小时前
位图妙用:512MB 实现 40 亿整数的存在性查询
c语言·c++·面试·哈希算法
听风若依2 小时前
数据在内存中的存储-纸面笔记整理
c语言·笔记
殷色玫瑰3 小时前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++
Code_Solitude3 小时前
C语言:关于二维数组的作业总结
java·c语言·前端
老花眼猫4 小时前
数学艺术图案画-曼陀罗(93)
c语言·经验分享·青少年编程·课程设计
水饺编程5 小时前
第1章:下载 Linux 0.12 内核
linux·c语言·汇编·ubuntu
沐晓时光5 小时前
C语言入门,深入理解指针(2)
c语言·开发语言