1、引用就是另一个变量的别名
2、通过引用所做的读写操作实际上是作用与原变量上
引用方式:
int x;
int & rx=x;
or
int x, &rx=x;
在C中&是取地址,在C++中&放在一个变量的定义前,那就是引用
注意:
这种引用是错误的,被引用变量必须先定义
TIP:
C++指针与引用符号应该靠近其类型而非名字
如:
float* x; //not: float *x;
int& y; //not: int &y;,这个地方有语法错误,因为应用必须依附于一个对象
引用作为函数参数:
引用可做函数参数,但调用时只需要传普通变量即可。
在被调函数中改变引用变量的值,则改变的是实参的值
int main()
{
int x = 0;
int y{
10 };
int& rx = x;
rx = 8;
cout << x << endl;
return 0;
}
输出结果:8
int main()
{
int x = 0;
int y{
10 };
int& rx = x;
rx = 8;
const char* s = "Hello";
const char* t = "World";
const char*& r = s; //r引用的是s
cout << r << endl;
return 0;
}
输出:Hello
当一个引用变量绑定了一个变量,它的引用变量的关系就不能改变了
int main()
{
int x = 0;
int y{
10 };
int& rx = x;
rx = 8;
const char* s = "Hello";
const char* t = "World";
const char*& r = s; //r引用的是s,当一个引用变量绑定了一个变量,它的引用变量的关系就不能改变了
r = t; //s=t; 将World变量的首地址放到变量r里面
cout << r << endl;
cout << s << endl;
return 0;
}
记住:
当我们对引用对象进行操作的时候,实际上就是对引用所绑定的对象进行赋值。
引用本身存放的是引用对象的地址 。
另外: 遇到 & 运算符时,怎样才能判断它是哪个含义呢
- 位与
- 取地址
- 定义一个引用类型
靠着右边取地址(&x),靠着左边是引用(int&),挂在中间与运算(a & b)
更深层次的含义以及测试手段见:
https://www.cnblogs.com/KaiMing-Prince/p/9741393.html
https://app.yinxiang.com/fx/c1155235-33c5-4d6b-9576-1f1d374c9f29