rt
#include <iostream>
using namespace std;
int ans,b[10];
signed main()
{
for(int i = 1; i <= 3; i++)
{
ans++;
cout << ans << endl;
}
}
这段代码会输出
1
2
3
而这段代码,把一个无关数组列表初始化之后会导致ans清零
#include <iostream>
using namespace std;
int ans,b[10];
signed main()
{
for(int i = 1; i <= 3; i++)
{
ans++;
cout << ans << endl;
b[10] = {0};
}
}
输出为
1
1
1
测试环境:
Dev c++ (编译选项:-std=c++11 -O2)
洛谷在线IDE,所有的C++版本在开了O2的情况下,都是输出三个1(没开就是123)
估计跟O2和数组越界有关系?