static int执行了多少次?

时间:2014-05-01 03:09:13

标签: c++ static int

void Test (int alpha)
{
    static int n = 0;
    n = n + alpha;
    cout << n << " ";
}

如果我运行Test(2);试验(4);试验(6);然后输出应该是2 6 12.我不明白为什么,我知道由于通用范围,n将存在于整个程序中,但我认为静态意味着不可改变。&#34;或者在这种情况下它只是意味着行&#34; static int n = 0;&#34;只执行一次?总是这样吗?

4 个答案:

答案 0 :(得分:2)

函数作用域中的

static表示该变量只定义一次,它存在于函数的所有调用中。

如果您想让它不可更改,您必须将其设为static const

static const int n = 0;

如果您这样做,那么

n = n + alpha; 

会产生编译错误。

答案 1 :(得分:1)

不,它只是意味着行static int n = 0;将执行一次,但它可以在程序中稍后更改。

答案 2 :(得分:0)

static并不意味着“不可改变”;那是const的意思。 static指的是存储类。

答案 3 :(得分:0)

  

我知道由于通用范围,整个程序中都会存在n,但我认为静态意味着不可改变。&#34;

没有。这是const的用途。

  

或者在这种情况下它只是意味着行&#34; static int n = 0;&#34;只执行一次?

  

总是这样吗?

规则就是规则。