4.C++引用
其本质是一个指针常量,即int &ref=a; 相当于int* const ref=&a;
引用必须初始化 并且初始化后不可以改变
数据类型 &别名=原名
int a=10;
int &b=a;
b是a的别名 都是操作同一块内存
引用作函数参数 (函数内操作形参可以改变传入的实参的值)
定义
void a(int &a,int &b)
{
}
使用:a(aa,bb)
引用作函数返回值
1.不要返回局部变量的引用 相当于返回了一个被释放的变量
2.函数调用可作为左值 因为返回的是引用相当于是给变量赋值
3.不能返回函数内部通过new分配的内存的引用 会因为没有变量名而无法释放
int a=1;
int & t(void)
{
return a;
}
t()=2;
此时a=2?
常量引用
主要用于函数形参防止误操作 与值传递一个效果 但是引用比值传递省空间(作返回值时也是如此 不会返回一个副本而是返回本就有的变量的别名)
引用的类型必须和所引用的类型严格匹配,且不能与字面值或者某个表达式的计算结果绑定在一起,但是 “常量引用” 是例外(只要被引用的类型能够转换为常量引用的类型)
float c=1.0
int b=10
const int &a=10 右侧可为变量
const int &a=b
const int &a=c 但是将c强转int了相当于 const int temp = c; 生成一个临时的整型常量 const int &a = temp; // 让 a 绑定这个临时量
int a=10
void f(const int &x)
{
}
f(1)
f(a)
更多推荐



所有评论(0)