- 引用就是给变量起别名,操作引用就等于操作原始变量。
2.1 引用基本用法
int var = 10;
int & r_var = var;
2.2 注意事项
- 声明时必须初始化
- 不允许更改引用指向的原始变量
2.3 引用作为函数参数传递
2.4 引用作为函数返回值
- 不要返回局部变量的引用,因为函数结束后原始局部变量被系统自动释放了
- 可以用于返回静态局部变量的引用
- 函数调用可以作为左值
int & func()
{static int var = 10;return var;
}
int main()
{func() = 1000; // 将静态局部变量var赋值为1000system("pause");return 0;
}
2.5 引用的本质
- 在C++内部实现了一个指针常量-->指针的指向不能更改
int var = 10;
// 下面语句:
int & r_var = var;
// 被C++内部自动转化为:
int * const r_var = &var; // r_var是指针常量
2.6 常量引用
void func(const int & printVal)
{std::cout << printVal << std::endl;
}
int main()
{int var = 10;int & r_var = var;func(r_var); // r_var在func函数内部不允许被修改
}