局部变量问题

[复制链接]
1046|3
 楼主| gxgclg 发表于 2013-6-28 23:17 | 显示全部楼层 |阅读模式
int& func(int a)
{
     return a;
}
int main()
{
    int b;
    b = func(5);
}
本来 a是函数func的局部变量,在func执行完时释放,但是返回值是对a的引用 是不是意味着 a不是在函数执行完后释放 而是在b = func(5)之后释放
无冕之王 发表于 2013-6-28 23:34 | 显示全部楼层
可能这里运行没错, 并不意味着代码就没错.
yybj 发表于 2013-6-28 23:45 | 显示全部楼层
该定义的局部变量的生命周期就是在函数调用结束后就结束了。
秋天落叶 发表于 2013-6-28 23:56 | 显示全部楼层
永远不要返回局部变量的引用!当函数返回时,局部变量的生命周期已经结束,因为该局部变量是在函数内部的栈上分配的内存,函数结束后,栈空间被释放。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

1653

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部