【C++ grammar】引用

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;
}

在这里插入图片描述
记住:

扫描二维码关注公众号,回复: 11946693 查看本文章

当我们对引用对象进行操作的时候,实际上就是对引用所绑定的对象进行赋值。

引用本身存放的是引用对象的地址 。

另外: 遇到 & 运算符时,怎样才能判断它是哪个含义呢

  1. 位与
  2. 取地址
  3. 定义一个引用类型

靠着右边取地址(&x),靠着左边是引用(int&),挂在中间与运算(a & b)

更深层次的含义以及测试手段见:
https://www.cnblogs.com/KaiMing-Prince/p/9741393.html
https://app.yinxiang.com/fx/c1155235-33c5-4d6b-9576-1f1d374c9f29

猜你喜欢

转载自blog.csdn.net/qq_42604176/article/details/108895593