作用:常量引用主要用来修饰形参,防止误操作
在函数形参列表中,可以加const修饰形参,防止形参改变实参
引用和常量引用的区别:
引用:
int &a = 10; //错误。不合法,引用必须是引一块合法的内存空间
int b =10; int &c = b; //合法,引用的的合法数据是栈区或者堆区
常量引用:
const int &ref = 10; //合法
加上const之后,编译器将代码会自动优化修改,会生成一个临时的变量空间:int temp = 10; 然后:const int &ref = temp;
示例:
#include <iostream>
using namespace std;
void func(int &a)
{
a = 1000;
cout << "func函数中的 a = " << a << endl;
}
void func2(const int &b)
{
//b = 1111; const修饰,此时状态为只读
cout << "func2函数中的 b = " << b << endl;
}
int main()
{
int a = 10;
int b = 11;
func(a);
func2(b);
cout << "主函数中的 a = " << a << endl;
cout << "主函数中的 b = " << b << endl;
return 0;
}
const 修饰的形参,不能被更改。