下面的程序会打印什么?
#include <iostream>
using namespace std;
static int x = 10;
void main1()
{
cout << x << endl;
x = x + 1;
}
int main()
{
main1();
main1();
cout << x << endl;
}
根据我的理解,上面的程序我们使用了静态变量,所以x
保留了最后一个初始化的变量。所以输出将是
10
11
12
但如果我们删除静态,我们应该得到
10
10
10
但我得到以下输出,即使在删除静态之后。
10
11
12
请帮我理解。