使用static int返回int和in函数

问题描述 投票:-2回答:1

假设我必须遵循:

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

我意识到这个函数返回一个整数的引用(我试图使用这个Function returning int&)。

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

我真的没有意识到qazxsw指出的是什么......

此外,它可以做出什么改变如果省略上面的“静态”?我知道static int是一个在程序存在之前实际存在的整数,但我不确定它能帮助我理解会发生什么样的变化。

我试图找到使用调试器的答案。

c++ function reference static
1个回答
2
投票

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

是。在为整数赋值后,它将等于该值。

可以做出什么改变如果省略上面的“静态”?

取决于您希望程序如何表现。只删除f() = 5会使程序有不确定的行为,所以这不是一个好主意。一个可能的变化是删除整个函数声明,以及对它的调用。

© www.soinside.com 2019 - 2024. All rights reserved.