扩展阅读
指针
指针
指针的概念
在生活中,我们去图书馆找书,往往需要先查看图书索引,索引上记录了书所在的书架位置,通过这个位置信息我们就能找到书。在编程里,指针就像是这个图书索引,它保存的是内存中某个数据的位置信息,通过这个位置信息我们就能找到对应的数据。

指针的定义
定义指针和定义普通的变量有点像,不过要在数据类型后面加一个星号 *。
基本语法
数据类型* 指针变量名;定义示例
// 定义一个可以指向整数的指针变量,名字叫 p
int* p;指针的使用
指针主要有两个操作,一个是让指针指向某个变量,另一个是通过指针访问它所指向的变量的值。
让指针指向某个变量
要让指针指向某个变量,需要使用取地址运算符 &,它能得到变量在内存中的位置。
#include <iostream>
using namespace std;
int main() {
// 定义一个整数变量,名字叫 num,初始值为 10
int num = 10;
// 定义一个可以指向整数的指针变量,名字叫 p
int* p;
// 让指针 p 指向变量 num,也就是让 p 保存 num 的内存位置
p = #
return 0;
}通过指针访问它所指向的变量的值
要通过指针访问它所指向的变量的值,需要使用解引用运算符 *。
#include <iostream>
using namespace std;
int main() {
// 定义一个整数变量,名字叫 num,初始值为 10
int num = 10;
// 定义一个可以指向整数的指针变量,名字叫 p
int* p;
// 让指针 p 指向变量 num,也就是让 p 保存 num 的内存位置
p = #
// 通过指针 p 访问它所指向的变量的值,并输出
cout << "指针 p 所指向的变量的值是:" << *p << endl;
return 0;
}例题
例题 1:使用指针修改变量的值
#include <iostream>
using namespace std;
int main() {
// 定义一个整数变量,名字叫 num,初始值为 10
int num = 10;
// 定义一个可以指向整数的指针变量,名字叫 p
int* p;
// 让指针 p 指向变量 num,也就是让 p 保存 num 的内存位置
p = #
// 通过指针 p 修改它所指向的变量的值,把它改成 20
*p = 20;
// 输出变量 num 的值,看看是否已经被修改
cout << "变量 num 的值是:" << num << endl;
return 0;
}例题 2:交换两个变量的值
#include <iostream>
using namespace std;
// 定义一个函数,用来交换两个整数变量的值
void swap(int* a, int* b) {
// 定义一个临时变量,用来保存 a 所指向的变量的值
int temp = *a;
// 把 b 所指向的变量的值赋给 a 所指向的变量
*a = *b;
// 把临时变量的值赋给 b 所指向的变量
*b = temp;
}
int main() {
// 定义两个整数变量,名字分别叫 x 和 y,初始值分别为 10 和 20
int x = 10;
int y = 20;
// 输出交换前 x 和 y 的值
cout << "交换前:x = " << x << ", y = " << y << endl;
// 调用 swap 函数,把 x 和 y 的地址作为参数传递给它
swap(&x, &y);
// 输出交换后 x 和 y 的值
cout << "交换后:x = " << x << ", y = " << y << endl;
return 0;
}通过上面的讲解和例题,你应该对指针的概念、定义和使用有了基本的了解。指针虽然有点难理解,但是它能让我们更灵活地操作内存中的数据。在使用指针时,一定要小心,避免出现错误。