C++ 引用学习笔记
1. 引用的基本概念
- 作用:引用是一个别名,用于引用变量或对象,可以看作是已存在变量的别名。
- 声明:使用
&
符号来声明引用,引用必须在声明时初始化,并且不能修改引用的目标。
示例代码:
int num = 10;
int& ref = num; // 声明一个引用,ref 是 num 的别名
2. 引用与指针的区别
- 初始化:引用必须在声明时初始化,而指针可以在任何时候初始化。
- 目标对象:引用在初始化后不能改变目标对象,而指针可以改变所指向的对象。
- 空引用:引用不能指向空值,而指针可以指向空值(nullptr)。
示例代码:
int num1 = 10;
int num2 = 20;
int& ref1 = num1; // 合法
ref1 = num2; // 修改了 num1 的值
int* ptr1 = &num1; // 合法
ptr1 = &num2; // 合法,改变了指针的指向
3. 引用作为函数参数
- 传递方式:引用作为函数参数传递时,可以直接修改传入的变量。
- 避免拷贝:使用引用可以避免在函数调用时进行拷贝操作,提高效率。
示例代码:
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
int x = 10, y = 20;
swap(x, y); // 交换 x 和 y 的值
4. 引用返回值
- 返回引用:函数可以返回引用类型,返回的是某个变量的别名。
- 避免拷贝:返回引用可以避免返回值时进行拷贝操作,提高效率。
示例代码:
int& getMax(int& a, int& b) {
return (a > b) ? a : b;
}
int x = 10, y = 20;
int& maxRef = getMax(x, y); // 获取 x 和 y 中的较大值的引用
通过学习和理解引用的概念、初始化、用法以及与指针的区别,我们可以更加灵活地进行变量的引用和传递,提高程序的效率和可读性。