我有一个类似于以下示例的代码,我不确定这是否正确,因为可执行文件按预期运行。
// source.cpp
void compute_x(int& ref)
{
ref = 0;
}
void f(int x)
{
int local = x;
local = 1;
if (local)
{
return copute_x(local);
}
else return;
}
int main()
{
f(2);
return 0;
}
代码运行但是,local
返回后变量f
是否有效?
答案 0 :(得分:1)
变量local
在f
返回后超出范围。
编辑之后:但是从函数返回返回值,随后从main
返回。
答案 1 :(得分:0)
否。变量local是无效的,因为它的范围介于f函数defination的括号之间...之后它没有存在