Oli*_*rth 20

他们每个人只看到自己的一个.变量不能从它声明的范围之外"看到" .

另一方面,如果你这样做:

static int x;

void foo() {
    static int x;
}

int main() {
    foo();
}
Run Code Online (Sandbox Code Playgroud)

然后foo()才看到它的本地x; 全球x已经被它"隐藏"了.但改变一个不会影响另一个的价值.

  • @awoodlannd:为此目的使用`static`在C++(D.2/1)中已弃用.是否更好的风格取决于你问的人是否同意这种弃用...... (3认同)

Ned*_*der 6

变量是不同的,每个函数都有自己的范围.因此,尽管两个变量都持续了整个过程的生命周期,但它们并不会相互干扰.