C语言指针进阶:通过地址,直接修改变量的值
资料合集下载链接:
https://pan.quark.cn/s/472bbdfcd014
在上一篇博客中,我们一起初步认识了C语言的指针,了解了变量、内存地址以及指针变量如何存储地址。我们还学习了如何使用取地址运算符 &
获取变量的地址,以及如何使用解引用运算符 *
通过指针访问(读取)指针所指向内存地址中的内容。
今天,我们要更进一步,探索指针的另一项强大能力:通过指针来间接修改变量的值。这正是指针实现“引用传递”等高级功能的基础。
1. 回顾:指针与地址
简单回顾一下:
- 每个变量在内存中都占据一块空间,这块空间有一个唯一的地址。
- 我们可以用
&
运算符获取变量的地址。 - 指针变量是专门用来存储地址的变量。定义时需要指定它将指向的数据类型,例如
int *p;
表示 p
是一个可以存储 int
类型变量地址的指针。 - 解引用运算符
*
用在指针变量前面时,表示“访问该指针所指向的内存地址中的内容”。例如,如果 p
存储了变量 a
的地址,那么 *p
就代表变量 a
本身。
2. 核心:通过指针修改值
既然 *p
代表了指针 p
所指向的那个变量本身,那么我们对 *p
进行的操作,实际上就是对那个变量本身进行的操作。这包括了修改它的值!
想象一下,你有一张藏宝图 (指针),上面写着宝藏的位置 (地址)。你知道了位置 (地址),就可以去那里找到宝箱 (*p)。找到宝箱后,你不仅可以看看里面有什么 (读取值),还可以把宝箱里的东西拿出来&