我有问题,RETURN语句中的表达式会被执行吗?
int test()
{
top=10;
return top--;
}
我的问题是,top
,10或9的值是多少?
有人可以帮助我吗?我只是一个初学者。
答案 0 :(得分:1)
后缀增量和减量运算符将始终在使用当前值后执行,因此将返回问题10
中显示的代码。之后函数top
的值是什么并不重要,因为函数将不再执行。如果编译器足够智能,它可能会优化掉实际的减量,因为它的死代码是#34;。
答案 1 :(得分:1)
top--
会递减top
并返回原始文件,因此test
将返回10
。如果top
具有本地存储持续时间,理论上它在函数返回时将具有值9
,但这并不意味着任何事情,因为函数已经结束并且整个计算可能会被优化掉无论如何。如果top
具有非本地存储,那么当函数退出时,您可以依赖它9
。