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

引用

  • 引用:简单的讲就是某个变量的别名。对一个变量的“引用”的所有操作,实际上都是对其所代表的(原来的)变量的操作。

  • 设有一个变量x,要给它起一个别名y,可以这样写:

int x;    // 定义变量x  
int &y = x;// 声明y是一个浮点型变量的引用变量,它被初始化为x

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

  • 对引用而言,新定义的引用变量是不申请内存单元的,与它引用的对象共同同一块变量存储单元,正是因为这一特性,在声明一个引用的同时必须将其初始化
int &c=a;//正确
int &c;//错误
  • 在函数中声明一个变量的引用后,在函数执行期间,该引用一直与其代表的变量相联系,不能再作为其他变量的别名。例如:
int a, b;       // 定义整型变量a,b
int &c = a; // 使c成为变量a的引用
int &c = b; // 又使c成为变量b的引用是错误的
  • 在c++中加入引用的主要目的是为了给函数传参。在C语言中,将变量名作为实参。这时将变量的值传递给形参。传递是单向的,在调用函数时,形参和实参不是同一个存储单元。在执行函数期间形参值发生变化并不传回给实参。
    而引用与他所引用的对象共用同一块内存空间,在函数中直接改变引用的值,原变量的值也会随之改

常引用

  • 常引用就是在引用之前加上const对引用进行限制,使得该引用在函数中不能进行改变(但可以改变原变量的值),例如
int a = 6;      // 定义整型变量a,初值为6
const int &b = a;   // 声明常引用,不允许改变b的值
b = 8;      // 改变常引用b的值,错误
a = 8;      // 改变a的值,正确
  • 常引用通常用作函数形参,这样能保证形参的不被改变

关于常引用的声明
- 在声明时,可以用常量或者是表达式常引用进行声明

int a = 6;          // 定义变量
const int &b = a + 3;   // 正确,可以用表达式对常引用进行初始化
int &c = a + 3;     // 错误,对非常引用只能用变量进行初始化
  • 在以表达式的形式对常引用进行声明时,系统将自动生成一个临时变量,用这个临时变量存表达的值,之后常引用实是这个临时变量的引用。
    例如将const int &b=a+7;自动转化为
int temp=a+7;//临时变量temp
const int &b=temp;
阅读更多
文章标签: c++ c语言
个人分类: c/c++
下一篇关于eclipse部署tomcat后项目加入根目录以及XML自动修改的问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭