a:普通变量,存的是值 10
-
&a:取地址,得到 a 在内存中的位置
2.p:指针变量,存的是 a 的地址
3.*p:解引用,表示"取这个地址里的值",也就是 10
-
&:取地址
-
*:取值(解引用)例如:
cpp
int a = 10;
int* p = &a;
二、指针的基本操作
1.访问和修改值
cpp
int a = 5;
int* p = &a;
cout << *p; // 输出 5
*p = 20; // 修改 a 的值
cout << a; // 输出 20
- 指针作为函数参数(非常重要)例如`
cpp
void change(int* p) {
*p = 100;
}
int main() {
int a = 10;
change(&a);
cout << a; // 100
}
- 空指针(避免野指针)
cpp
int* p = nullptr;
三、什么时候用指针?
当需要以下操作的时候需要用到指针
- 需要修改函数外变量
- 操作数组 / 字符串
- 动态内存管理
- 数据结构(链表、树)