对于c++中的引用语法:
1.引用必须初始化
2.引用在初始化之后,不可以更改
int a = 10;
int &b = a;
b = c ; //赋值操作 ==》 a=c;
引用的两种常用用法:
🕐引用作函数参数,作用:函数传参时,可以利用引用让形参修饰实参,相当于直接修改实参;
void myfun(int &a)
{
a=3;
return;
}
🕑引用作函数返回值
注意点:不能返回局部变量的引用;函数的调用可以作为左值;
如何去理解呢?首先第一点很容易理解,局部变量在当前函数退出之后会被系统释放,那返回一个被释放的变量这是肯定是不行的!!第二点:函数返回一个变量的引用,如果把他作为左值,就等价于把变量本身赋值。
int& test()
{
static int a =100;
return a;
}
int main()
{
int &ref = test();
cout << "ref =" << ref << endl;
test()=1000;
cout << "ref =" << ref << endl;
return 0;
}
结果分别为100和1000
/*****************************************补充********************************************/
引用的本质其实是常量指针
int b=1;
int &a=b; //相当于 int *const a = &b; 这也就解释了为何引用不能更改
a =20; //编译器发现是引用后,做出的操作为 *a=20;
本篇仅供学习交流使用,因水平有限,如有不足或错误之处,还请大家指出。