1.定义
引用:已存在变量的别名。
主要用途:描述函数的参数和返回值。
语法格式: 数据类型 & 引用变量名 = 变量名;
- 数据类型应与被引用变量的类型相同
- &——引用运算符。这里是二元操作符。
- 变量名为已定义的变量。
如:
int x ;
int & refx= x;
当定义一个引用变量之后系统并没有为它分配内存空间。refx 与x 具有相同的地址。即refx 与x使用的是同一内存空间。
- 引用与指针的对比:
2.引用与函数
1)引用作为形参
2)引用作为返回值
- 函数返回值类型为引用型,在函数调用时,若接受返回值的是一个引用变量,相当于定义了一个对返回变量的引用;
- 若接受返回值的是一个非引用变量,函数返回变量的值赋给接受变量。
- 若函数返回值类型是引用型,则要求返回值为左值。这样函数调用式可以当做左值。
3.常引用
定义格式: const 数据类型 & 引用变量 = 变量名;
- 不能通过常引用更改引用变量的值
如:
int i(100);
const int & r = i;
不能通过r改变i的值;
但i可以改变i的值。
常引用作为形参时,函数体内不能通过形参改变实参的值。
如: void fun(const & x,int &y)
函数体不能改变x的值,但可改变y的值。
- 注意:形参为常引用时实参可以是常量、变量表达式;若形参为非常引用类型时,实参需为左值。
如:对于 void fun(const int & x,int &y),调用fun(200,100)是错的,调用fun(200,a)是对的,(a为变量)。