使用静态int返回int&in函数

时间:2019-02-25 01:07:54

标签: c++ function reference static

假设我要遵循以下条件:

int &f() {
static int x = 0;
return x;
}
void main() { f() = 5; }

我意识到此函数返回对整数的引用 (我尝试使用此Function returning int&)。

这是否意味着x在这种情况下将等于5?

我真的没有意识到其中的f() = 5 ...

此外,如果在上方省略“静态”,它将产生什么变化? 我知道static int是在程序存在之前实际上已经存在的整数,但是我不确定它是否可以帮助我了解将会发生什么变化。

我正在尝试使用调试器找出答案。

1 个答案:

答案 0 :(得分:2)

  

这是否意味着x在这种情况下将等于5?

是的。给整数赋值后,它将等于该值。

  

如果在上方省略“静态”,它将带来什么变化?

取决于程序的预期行为。仅删除static会使程序具有未定义的行为,所以这不是一个好主意。一种可能的更改是删除整个函数声明以及对其的调用。