其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
对作用域及引用的一个认识

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

今天在看书时写了这样一个函数:
#include
int& fn(int i)
{
 int a = i;
 return a;
}
void main()
{
 int b = 2,c;
 c = fn(b);
}
编译通过了可是被警告了,想了一下还是和作用域有关。

就上面这个函数来说,对于返回引用的函数fn(),未将a的值赋给一个临时变量,仅仅是将a的地址传递给了调用函数,用调用函数顺着地址找到了a的值并将这个值赋给了c。但是,fn()中的a的作用域在函数结束时结束,在正常情况下应该是找一个作用域尚未结束的变量的地址。故编译器会给一个警告。

但我还是有些不懂,作用域结束的变量编译器会给于怎样的处理,是收回空间彻底销毁,还是待程序结束全部后再一起回收,或是别的处理方法。还请大侠指教。




相关文章

相关软件