临时变量作函数的返回值
来源:互联网 发布:178剑网3脸型数据库 编辑:程序博客网 时间:2024/05/29 03:48
我觉的要说清楚首先要从函数返回的临时变量的生命周期说起:
函数返回的临时变量是放在堆栈上的,所以返回来后如果你没有调用其他的函数,那么这个临时变量在依然保存在堆栈中,是可以被引用的。
因为这时堆栈并没有被破坏。但是一旦调用其他函数后堆栈被破坏了,那个返回值就没有用了。
例如:一个函数返回类型是string
string func()
{
String a;
…
return a;
}
使用如下:
string b;
b = func();
其过程如下:
1) 当func返回时,会产生一个临时变量
2) 将要返回的值a拷贝到临时变量中,因为一旦func执行完毕a就会被析构。
3)变量b再调用赋值操作将临时变量的值赋给b
4)临时变量析构。
问题:
1>临时变量的位置? 是在调用func的函数中对应的栈的位置,还是func对应的栈中。我认为是前者。
注意:
1>分清楚什么是临时变量,什么是局部变量。局部变量,func中的a是也。临时变量,编译器生成的是也。
- 临时变量作函数的返回值
- 也谈C++深拷贝、浅拷贝和函数返回值作参数及其临时变量的生存期
- 函数返回值返回临时变量之解惑
- C++函数返回临时变量的引用运行要出错
- 返回临时变量的引用
- 关于const与临时变量与函数返回值
- 函数返回临时变量的问题和左值和右值
- 临时对象作为函数返回值返回的分析
- 引用作函数返回值
- 指向临时变量的指针的返回
- 指向临时变量的指针的返回
- 指向临时变量的指针的返回
- 返回指向临时变量的指针
- 返回一个临时变量的右值引用,那么临时对象什么时候释放?
- 为什么不能从子函数中返回临时对象的指针和引用,却可以返回一个临时变量的值
- 关于 类成员函数返回指向const临时变量的引用
- 函数的返回值和临时对象的问题
- SQL中把函数执行返回的数据保存到临时表,并把值赋给变量,输出变量的值
- Linux 内核中断内幕
- 阳振坤
- Linux中对VPS的硬盘扩容后的分区记录
- 网络编程笔记
- 我们到底知道多少
- 临时变量作函数的返回值
- 60个免费的按钮PSD文件下载
- C++ primer(第四版)读书笔记2
- 开发和部署 Web Service 客户机
- Android疯狂的专利战争史记
- C语言随笔(1)
- Linux 下超级终端 minicom 使用总结
- Foxit Phantom Business v5.03.0811 注册码
- ubuntu安装 配置samba