引用就是给变量起另外的名字,区别就是在别名前加&的符号。实质上指向同一个内存。
引用的两个注意事项:
1.引用必须初始化。
2.引用初始化后不可以更改。
引用做函数参数就太熟悉了,引用作函数返回值倒是没见过。
1.不能返回局部变量作为引用,任何和局部变量地址相关的操作都不要做就完事了。
2.若引用作函数返回值,则函数调用可以作为左值。具体可看以下代码:
int& test(){
static int a = 10;
return a;
}
int main(){
int& bie = test();
cout << bie << endl;
test() = 100;
cout << bie << endl;
return 0;
}
引用的本质是一个常量指针,也就是说每次引用都是在开辟了一个常量指针,这也对应了常量指针无法变更指向对象的特性。常量指针的生存周期还是看所处的位置。