第八章——地址和指针 第一节——指针变量的定义和初始化
变量(从内存层次的重理解)
变量实质上代表了“内存中的某个存储单元”。若在内存中定义一个变量,那么这个变量的内存也就是确定的了。
即,定义一个变量,相当于插了个路标,指向一定的存储空间。
举个通俗一点的例子:假设你要去一栋教学楼中的一间教室,去取某个物品,此时你要去的教室名“4 教 101”便是 变量名,而教室钥匙便是 指针,教室便是 内存空间,你要取的物品便是 存储值。
我们在程序中只需要指出变量名(教室名),无需知道每个变量在内存中的具体位置(房间具体在教学楼的哪个位置),每个变量与具体地址的联系是由 C 语言编译系统来完成的。对于变量的存取操作就是对某个存储单元进行操作。这种 直接按变量的地址存取变量值 的方式就称作 直接存取 。
指针
指针也可以视作一种变量,而这种变量用来存放的是内存地址。
1 | int *p; |

间接存取
这种通过变量 p 到变量 a 的地址,然后再存取变量 a 的值的方式称为“间接存取”
指针变量 p 指向了变量 a 的含义是:指针 p 中存放了变量 a 的地址。
定义
一个变量的地址
指针变量
专门用来存放变量地址的变量。

定义指针的形式
1 | 类型名 *指针变量名1,*指针变量2,…… |
- *是一个说明符,说明该变量指针变量。
- *不可省略,否则就变成了 int pi , pj(定义两个整型变量)。
1 | double *pd; |
说明
1 | int **p , *s , k = 20; |
- 指针 p 的基类型是 int 类型的指针。
- &是求地址运算符。
- 因为基本数据类型 int、float、char 等所需存储的空间不同,所以需要定义指针变量的基类型。
- *是指针运算符,返回其所指对象的值。

考点
- 指针变量定义的形式:
存储类型 类型名 指针变量名 1, 指针变量名 2,…
- 也可以定义的同时赋初值:
存储类型 类型名 *指针变量名 1 = [初值],…
- “存储类型”可以缺省, 缺省时的存储类型为自动型 auto
- 定义指针变量时,指针变量名前必须有一个*,在此它是定义指针变量的标志,不同于后面所说的“指针运算符”
- 初值的形式通常有三种:“&普通变量名”、“&数组元素”和“数组名”
C 语言规定:
数组名代表的是数组的首地址,即第一个元素的地址。
- 标题: 第八章——地址和指针 第一节——指针变量的定义和初始化
- 作者: 亓翎_Re-Tikara
- 创建于 : 2026-02-07 02:21:28
- 更新于 : 2026-02-07 02:26:19
- 链接: https://re-tikara.fun/Blog/posts/4944f5d8/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。