Fork me on GitHub

c++中常引用const int &a的介绍

c++中常引用const int &a的介绍

引用

  • 引用:简单的讲就是某个变量的别名。对一个变量的“引用”的所有操作,实际上都是对其所代表的(原来的)变量的操作。
  • 设有一个变量x,要给它起一个别名y,可以这样写:
1
2
int x;	  // 定义变量x	
int &y = x;// 声明y是一个浮点型变量的引用变量,它被初始化为x

声明后,使用x或y代表同一变量。在上述声明中,&是“引用声明符”长相与取地址符相同

  • 对引用而言,新定义的引用变量是不申请内存单元的,与它引用的对象共同同一块变量存储单元,正是因为这一特性,在声明一个引用的同时必须将其初始化
1
2
int &c=a;//正确
int &c;//错误
  • 在函数中声明一个变量的引用后,在函数执行期间,该引用一直与其代表的变量相联系,不能再作为其他变量的别名。例如:

    1
    2
    3
    int a, b;		// 定义整型变量a,b
    int &c = a; // 使c成为变量a的引用
    int &c = b; // 又使c成为变量b的引用是错误的
  • 在c++中加入引用的主要目的是为了给函数传参。在C语言中,将变量名作为实参。这时将变量的值传递给形参。传递是单向的,在调用函数时,形参和实参不是同一个存储单元。在执行函数期间形参值发生变化并不传回给实参。
    而引用与他所引用的对象共用同一块内存空间,在函数中直接改变引用的值,原变量的值也会随之改
    ###常引用###

  • 常引用就是在引用之前加上const对引用进行限制,使得该引用在函数中不能进行改变(但可以改变原变量的值),例如

    1
    2
    3
    4
    int a = 6;		// 定义整型变量a,初值为6
    const int &b = a; // 声明常引用,不允许改变b的值
    b = 8; // 改变常引用b的值,错误
    a = 8; // 改变a的值,正确
  • 常引用通常用作函数形参,这样能保证形参的不被改变

关于常引用的声明

  • 在声明时,可以用常量或者是表达式常引用进行声明

    1
    2
    3
    int a = 6;			// 定义变量
    const int &b = a + 3; // 正确,可以用表达式对常引用进行初始化
    int &c = a + 3; // 错误,对非常引用只能用变量进行初始化
  • 在以表达式的形式对常引用进行声明时,系统将自动生成一个临时变量,用这个临时变量存表达的值,之后常引用实是这个临时变量的引用。
    例如将const int &b=a+7;自动转化为

    1
    2
    int temp=a+7;//临时变量temp
    const int &b=temp;
-------------本文结束感谢您的阅读-------------
0%