第一篇博客之C++中的引用

本文介绍了C++中的引用,它作为变量的别名,允许直接修改所引用的对象。引用必须在声明时初始化,且一旦绑定后不能改变。引用可以作为函数参数实现地址传递,例如在swapTest函数中交换两个变量的值。然而,返回局部变量的引用是不安全的,因为局部变量在函数结束时会被释放,可能导致未定义行为。理解引用对于高效和安全地使用C++至关重要。
摘要由CSDN通过智能技术生成

语法:数据类型 & b = a;

可以理解为给一个数据起别名。可以通过操纵a的别名b给a赋值

注意事项:

1.一旦引用对对象确定,不可以再继续更改。

2.引用可以作为左值

引用的实际含义:指针常量(即        数据类型 * const ref = &a)

使用引用可以达到地址传递的作用

void swapTest(int &a, int &b){
    int temp = a;
    a=b;
    b=temp;
}
int main(){
    int a=1;
    int b=2;
    swapTest(a, b);
    return 0;
}

将a和b传入swapTest中,用两个引用接收他们,因为引用的本质是常量指针,常量指针无法更改指向但是可以修改数据。所以其实就是地址传递。

注意事项:不要返回局部变量

例:

int & test(){
    int a = 10;
    return a;
}

int main(){
    int a = test();
    cout<<"a = "<<a<<endl;
    return 0;
}

如果在函数体中返回的是局部变量,会出现乱码,但是第一次可以正确输出a的值,因为编译器自动做了保留。原理是函数中的数据存放子啊栈上,在函数调用后会自动释放。

其中的提示的翻译是“对与返回的局部变量“a”关联的堆栈内存的引用”

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值