RETURN语句中的表达式会被执行吗?

时间:2015-09-09 10:42:59

标签: c++

我有问题,RETURN语句中的表达式会被执行吗?

int test()
{
    top=10;
    return top--;
}

我的问题是,top,10或9的值是多少? 有人可以帮助我吗?我只是一个初学者。

2 个答案:

答案 0 :(得分:1)

后缀增量和减量运算符将始终在使用当前值后执行,因此将返回问题10中显示的代码。之后函数top的值是什么并不重要,因为函数将不再执行。如果编译器足够智能,它可能会优化掉实际的减量,因为它的死代码是#34;。

答案 1 :(得分:1)

top--会递减top并返回原始文件,因此test将返回10。如果top具有本地存储持续时间,理论上它在函数返回时将具有值9,但这并不意味着任何事情,因为函数已经结束并且整个计算可能会被优化掉无论如何。如果top具有非本地存储,那么当函数退出时,您可以依赖它9