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;只执行一次?总是这样吗?
答案 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;只执行一次?
是
总是这样吗?
规则就是规则。