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


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

相关推荐
octopus_c14 小时前
数据结构:堆(Heap)详解
c语言·数据结构·算法
wuminyu1 天前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
kkkkkkkkkk_Z1 天前
学嵌入式和C语言编程数据结构|学习日记Day21:内核链表与队列学习
c语言·数据结构·学习
不正经学生1 天前
C语言结构体:自定义数据类型,让变量打包出行
java·c语言·开发语言·数据结构·算法
老一岁1 天前
c问题总结(1)
c语言·开发语言
一木 之林1 天前
三、内存管理、指针与堆栈
c语言·jvm·c++
笨笨饿1 天前
#110_SCH3000 平台图传系统配置指南:从 DVP 摄像头到 UVC/WiFi 双通道传输
c语言·stm32·单片机·嵌入式硬件·物联网·vim
caimouse1 天前
ReactOS 窗口系统分析(20):光标与图标 — cursoricon.c
c语言·开发语言
H_oRIZoN_1 天前
Linux入门DAY23(C语言树形结构)
linux·c语言·数据结构
caimouse1 天前
ReactOS 窗口系统分析(22):鼠标 — mouse.c
c语言·开发语言·reactos