C++基础整理 —— 变量的引用Reference(2)

变量的引用:

引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样

引用的声明方法:类型标识符 &引用名=目标变量名;

 例:char a;

       char &ra=a;

 1)引用仅是变量的别名,而不是实实在在地定义了一个变量,因此引用本身并不占用内存,而是和目标变量共同指向目标变量的内存地址.

 2)表达式中的取地址符&不再是取变量的地址,而是用来表示该变量是引用类型的变量。

 3)其他用法,如下:

#include <iostream>
using namespace std;


void fun(int &x)
{
    cout << "形参的value:" << x << endl;
    cout << "形参的地址:" << &x << endl;
    x+=10;
}


// 引用 Reference
// 引用一旦产生就与实体存在必然联系,指直到灭亡
int main()
{
    // 注1:引用必须初始化,因为它总依附于某个实体,且地址相同。
    int a=2;
    int b=12;
    int &Ra=a;
    cout << "init a=2, then ra:"<< Ra << endl;
    cout << "a的地址:" << &a << " Ra的地址:" << &Ra << endl;
    // 注2:修改引用的值,即修改附属实体的值
    Ra=3;
    cout << "change ra=3, then a:" << a <<endl;
    // 注3:引用多用在函数参数的传递上
    fun(a);
    cout << "transferred a:" << a <<endl;
    // 注4:常引用声明方式:const  类型标识符  &引用名 = 目标变量名;
    //     用这种方式声明的引用,不能通过引用对目标变量的值进行修改,从而使引用的目标成为const,达到了引用的安全性。
    const int &Rb=b;
    cout << "init b=12, then Rb:" << Rb <<endl;
    // Rb=13;  // 报错,error: assignment of read-only reference ‘Rb’|
    // cout << "init Rb=13, then Rb:" << Rb << " b:" << b <<endl;
    return 0;
}

运行结果:

参考:

猜你喜欢

转载自blog.csdn.net/kongli524/article/details/88216070
今日推荐