cplus:指针

这是本文档旧的修订版!


指针(Pointer)就是“地址变量”——它里面不存具体数据,而存数据在内存中的门牌号。 通过门牌号,你能找到、读取、修改那间“房子”里的内容,也能在函数间、动态内存中低成本传递大块数据

### 1. 三句话核心 1. 指针 = 内存地址 2. `*` 出现在声明时,表示“这是指针”;出现在使用时,表示“取门牌号里的东西” 3. `&` 出现在变量前,表示“把门牌号拿出来”

### 2. 最小例子 ```cpp int a = 42; 普通变量,房里有 42 int* p = &a; p 是一个 int* 指针,存了 a 的地址 *p = 100; 把门牌号里的内容改成 100 cout « a; 输出 100 ```

### 3. 图示(32/64 位系统)

变量 内容(示意) 含义
`a` `42` 真正数据
`p` `0x7ffd'fc124c` 指向 a 的地址值

### 4. 两个运算符

符号 读法 作用
`&` “取址” 拿到变量的地址
`*` “解引用” 拿到地址指向的变量本身

### 5. 常见分类

名称 声明示例 说明
对象指针 `int* p` 指向一个 `int`
函数指针 `int (*fp)(double)` 指向一个函数
指针的指针

该主题尚不存在

您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。

  • cplus/指针.1760434175.txt.gz
  • 最后更改: 2025/10/14 17:29
  • 张叶安