假设我要遵循以下条件:
int &f() {
static int x = 0;
return x;
}
void main() { f() = 5; }
我意识到此函数返回对整数的引用 (我尝试使用此Function returning int&)。
这是否意味着x在这种情况下将等于5?
我真的没有意识到其中的f() = 5
...
此外,如果在上方省略“静态”,它将产生什么变化? 我知道static int是在程序存在之前实际上已经存在的整数,但是我不确定它是否可以帮助我了解将会发生什么变化。
我正在尝试使用调试器找出答案。
答案 0 :(得分:2)
这是否意味着x在这种情况下将等于5?
是的。给整数赋值后,它将等于该值。
如果在上方省略“静态”,它将带来什么变化?
取决于程序的预期行为。仅删除static
会使程序具有未定义的行为,所以这不是一个好主意。一种可能的更改是删除整个函数声明以及对其的调用。