C++返回局部变量引用的具体细节

本文探讨了C++中返回局部变量引用的行为,通过三次测试揭示其潜在的危险。首次测试显示正常结果,但第二次测试揭示了内存覆盖导致的值变化。第三次测试进一步证明,即使改变引用类型,依然存在地址覆盖的问题。结论指出,返回局部变量引用可能导致意外值改变,增加程序的不确定性,应当避免此类做法。
摘要由CSDN通过智能技术生成

返回局部变量引用的情况

书上都说不能返回局部变量的引用或局部指针,说这种行为危险,但又没讲具体原因,那么今天就来看看这种行为的具体细节

PS:下面含有AT&T汇编内容,未学过汇编的朋友可以跳过直接看结论

先放一个实验用函数,即返回 int& 类型的局部变量的函数

int& RetInt(){
   
    int i=42;
    int& RefI=i;
    return RefI;
}

测试函数

稍后会用到的几个测试函数,用来说明不同情况下使用局部的结果

void nop(){
   
    int i=0,i2=12;
}
void Snop(){
   
    int i=3
  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值