求问关于列表初始化
  • 板块学术版
  • 楼主Sicosuki
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/12/1 13:52
  • 上次更新2023/12/1 18:34:36
查看原帖
求问关于列表初始化
914358
Sicosuki楼主2023/12/1 13:52

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和数组越界有关系?

2023/12/1 13:52
加载中...