问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

具体代码如下:

发布网友 发布时间:2022-05-10 16:58

我来回答

4个回答

热心网友 时间:2023-10-17 10:53

又见有人玩引用了 :)

我试了试你的程序,结果的确是打印两个10.

int a = co();是将返回的临时变量x地址中的值赋值给a。(也就是将临时变量x在函数返回时的值赋值给a)

如果你所说是实,那么co()在返回前临时变量x的值已经改变了,可能是你的环境出了问题(可能流函数库有问题)。建议你将co()函数中加个打印语句,看看临时变量x的值是否被第一个打印语句改了,另外你如果会调试的话,建议单步跟踪到co()返回前看看临时变量x的值。

我回答过一个真正玩引用的问题,其中讲到了函数中的临时变量何时才会被覆盖,什么情况下可以在函数返回后继续利用其分配过的临时变量。
参考一下。
http://zhidao.baidu.com/question/510201654?&oldq=1

热心网友 时间:2023-10-17 10:53

根据你的函数声明,co()函数的返回值是一个int变量的地址,而x = 10 ,return x 返回的是int变量,而不是
int &,那么这个10在意义上就意味着地址为10 的内存空间了,int a =int ( 10),这个对于10的强制转换为,则是把内存第10块地址的值取了出来,强行取整,该值是4200665,所以打印出两个10根本就是不可能的,而你注释掉co函数的打印语句后,出现连个10 ,这件事,我觉得很难理解,毕竟你只有一个输出语句,那我建议你把另外一个输出也注释掉,看看会显示几个10,,以此推断到底是哪里出了问题。

热心网友 时间:2023-10-17 10:54


int& co()
{
int x = 10;
cout << x << endl;
return x;
}

dangling reference了!!

返回值是对局部对象的引用, 函数co一结束x就被析构了, 现在返回的栈上的随机内容。
如果非要返回局部引用可以做:
const int &a = co();

绑定一个栈上的临时对象到一个常量引用,这个临时对象的生命周期跟这个引用的生命周期相同(Note this only applies to stack basedreferences. It doesn’t work for references that are members of objects.)

热心网友 时间:2023-10-17 10:54

int& co()改为int co()
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
跪求各种言情小说,题材不限,越多越好,会加分哦。谢啦~ ...穿越网游古仙侠等等什么都行,种类不限,越多越好~ 求完本小说,种类不限越多越好。邮箱2583379991@qq.com 地热清洗 多少钱一次 地热清洗有什么效果 地热清洗方式有哪些 abs透明材料有哪些 茶叶怎么样去甲醛 茶叶如何除甲醛 茶叶除甲醛最有效方法 茶叶如何稀释甲醛 清晰的思路+主要代码 求一完整程序 主要原因代码和次要原因代码 css的一些主要代码有哪些 代码都有什么 什么是程序的主要源代码 C#的主要代码有哪些 怎样算是熬夜 什么样算熬夜 小米6主板坏了,可以回收多少钱 ntldr is missing该怎么办?最简单解决方法是什么? 怎样才算熬夜? 技嘉bootmgr is missing最简单解决方法 什么才算是真正的熬夜 ntldr is missing怎么解决?有PE 小米6售后为什么换主板 事实上并不是睡得晚就叫做熬夜,那怎么睡才算熬夜? 小米6背板大概多少钱 “ntldr is missing”的解决方法是什么? 什么才算是熬夜了? 为什么会有这些missing?怎么一个个处理? 想得到主要代码。 代码的最基本知识是什么? 移动的所有基本代码、、、 C# 基本代码大全 这几行代码主要意思是什么 焦虑症的具体表现有什么? 焦虑的症状表现是怎么样的? 一张2k的图片有多少mb 语音鼠标P30的电池在哪个位置? 一个手机可以同时登录2个吗?- 问一问 nba2k的配置要求 满30年工龄现辞职社保划算吗 辞职了,社保怎么处理好 一部手机能不能同时用两个 在医院工作30年辞职五险一金可转社保吗 一部手机能不能同时用两个 泰国商标异议期限是多久? 商标争议的时间是多久? galanz烤箱使用说明书 智利商标异议是多久?