【C++11及其特性】函数返回值当引用

函数返回值当引用目录

一.若返回变量为栈变量

1.例子

返回的是局部变量的引用,这里用的二级指针可以将i的地址拿到函数外.

2.不能成为其他引用的初始值

运行结果:

因为引用的是局部变量,当我调用一下其他函数时,原来指向地址的值就发生了变化.

原因是局部变量调用完应该是自动释放了,但是我demo1分配的栈空间就是刚刚释放的,刚好是原来的地址,所有我这里调用值就发生了变化.

dem1什么也没有做,只是调用一下.

3.不能作为左值

运行结果:

结果一样,也发生了变化!

二.若返回变量为静态变量或全局变量

1.列子

static只初始化一次变量哦.

2.即可左值也可右值

运行结果:

即使我调用了demo1,结果函数没有改变.

三.若返回变量为形参

1.普通形参

跟局部变量一样,不能作为左值和初始化引用.

2.引用形参

左右值都可以作.

四.结论

  • 要看返回值引用的变量的生命周期
  • 像局部就不能对其作为左值和其他引用的初始值,但是可以返回给普通变量赋值
  • 像全局的就可以作为左值和右值
相关推荐
小糯米6016 分钟前
C++顺序表和vector
开发语言·c++·算法
froginwe1112 分钟前
JavaScript 函数调用
开发语言
独望漫天星辰17 分钟前
C++ 多态深度解析:从语法规则到底层实现(附实战验证代码)
开发语言·c++
AI视觉网奇25 分钟前
ue 角色驱动衣服 绑定衣服
笔记·学习·ue5
无小道34 分钟前
Qt——事件简单介绍
开发语言·前端·qt
devmoon39 分钟前
在 Paseo 测试网上获取 Coretime:On-demand 与 Bulk 的完整实操指南
开发语言·web3·区块链·测试用例·智能合约·solidity
kylezhao20191 小时前
C# 中的 SOLID 五大设计原则
开发语言·c#
王老师青少年编程1 小时前
2024年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)
c++·题解·真题·csp·信奥赛·csp-s·提高组
凡人叶枫2 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
CSDN_RTKLIB2 小时前
使用三方库头文件未使用导出符号情景
c++