C++ 学习 困惑

这是钱能 C++程序设计教程里面的一段
“这种情况是一般的函数返回值方式。 返回全局变量temp值时,C++创建临时变量并将temp的值78.5复制给该临时变量。返回到主函数后,赋值语句a=fnl(5.0)把临时变量的值78.5复制给a。”

我想问的是 为什么返回全局变量时 C++要创建临时变量 ? 怎么不直接把78.5 给a 呢?
我是菜鸟 ,请高手指点!

第1个回答  2010-08-31
a不是函数里面的变量,,,所以不直接赋值给a,,那个函数不认识a

函数这个概念在被设计的时候就要考虑到返回值的问题,,这个题可能返回给a,,但别的题可能返回给b,,这就麻烦了,,于是那些人就想到了用临时变量这样一个机制,因为它是全局的,,,所以哪里都认识它,,,,,
第2个回答  2010-08-31
因为全局变量和普通的变量在实际程序中的位置是不相同的,如果你有汇编的经验就会知道,程序是分段的,全局变量存在的位置和普通变量存在的位置是不相同的本回答被提问者采纳
第3个回答  2010-08-31
看看函数调用的详细过程,这个你继续百度吧
还有各种变量占据内存的位置,堆栈公共区等等
或者暂时放放,多读几本书再回头看,恍然大悟,呵呵
第4个回答  2010-08-31
以后学到隐藏的this指针就明白了,this隐含指针在实际应用程序中,作用非常大。学习时不一定要甚解,但是要了解,有知识面。深刻理解都是结合实际而来的。
相似回答
大家正在搜