如果函数的返回值是个局部变量,会有什么影响

2019-07-21 00:25发布

例如: int add(int a,int b)
{
int temp;
temp = a+b;
return temp;
}
这哪里有问题吗???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
liuchang
1楼-- · 2019-07-21 23:12
没有对象的程序员 发表于 2016-1-5 18:16
不是局部变量的地址就没问题

那请问大神;为什么局部变量的地址不行?小弟不能理解
civic7366
2楼-- · 2019-07-22 02:24
 精彩回答 2  元偷偷看……
liuchang
3楼-- · 2019-07-22 08:01
civic7366 发表于 2016-1-6 11:04
這問題google很好查的...也比較詳細...

因為那個位址有可能又被其他函數使用了

2个原因
第1个原因---被其它函数使用了?这个该如何理解,还没有退出函数,那这个地址还是被占用的,如何被其它函数使用呢?恳请大神指教
第2个原因---被优化成CPU register,这个很好理解,我能看懂,感谢大神了
civic7366
4楼-- · 2019-07-22 12:48
第1个原因---被其它函数使用了?这个该如何理解,还没有退出函数,那这个地址还是被占用的,如何被其它函数使用呢?恳请大神指教

都返回了..怎會還沒退出函數呢...
xkwy
5楼-- · 2019-07-22 16:22
1原因。你add函数申请一个temp变量
xkwy
6楼-- · 2019-07-22 18:11
 精彩回答 2  元偷偷看……

一周热门 更多>