跳转至

指针是什么

基础补充 · 专题阅读 · 保留代码与校订注 · 本次导入快照

指针是什么

很多同学记住了 int *p 这样的写法,但不知道 * 到底在干什么。

概念 包类比
普通变量 int a = 10、char b = 'x' a=10块钱,b=一本叫'x'的书
指针变量 int *p 一张纸条,上面记着某个包的位置
*p 根据位置p

代码示例:

int a = 10;                  // 一堆钱,共 10 块钱
char b = 'x'                 // 一本叫'x'的书
int *p = a;                  // 一张纸条,记录的是钱的位置
char *q = b;                 // 一张纸条,记录的是书的位置
struct LNode *r = NULL;      // 一张纸条,记录的是包的位置

指针与内存地址示意

[!note] 转录批注(非原文) 原讲义此处写的是 int *p = a; 和 char *q = b;,按 C 语言语义应为 &a / &b。原样保留,做题时注意。