0
点赞
收藏
分享

微信扫一扫

C++ 核心 2.引用

2 引用

2.1 引用的基本使用

作用:给变量起别名 语法:数据类型 &别名 = 原名

int a = 10;
int &b = a;
b = 100;
cout <<"a = " << a<< endl;
cout <<"b = " << b<< endl;

2.2 引用注意事项

引用必须初始化,且不能更改

int a = 10;
int b = 5;
int &c = a;
c = b;//这里不是修改引用,而是赋值,也就是让a的值变为5。

2.3 引用做函数参数

函数传参时,可以传入引用。 简化指针,修改实参。

void swap(int &a, int &b)
{
    int t = a;
    a = b;
    b = t;
}
...
a = 1;
b = 2;
swap(a,b); 

2.4 引用做函数的返回值

不要返回局部变量引用。(局部变量在栈里,会被编译器回收) 函数的调用可以作为左值:

int & test0() {
    static a = 10;
    return a;
}
...
int &ref = test0();
test0() = 1000;

2.5 引用的本质

引用的本质是一个指针常量。 这也解释了引用为什么不能更改。

int a = 10;
int &ref = a;//相当于 int* const ref = &a;

2.6 常量引用

修饰形参,防止误修改。

void showValue(const int &a) {
    cout<<"a="<< a << endl;
}
int & ref = 10 //错误,引用需要一个合法内存空间
const int & ref = 10; //正确,编译器会优化为:
//int temp = 10; const int & ref = temp;
举报

相关推荐

0 条评论