C++ 未在C+;中的数组中默认初始化的索引范围+;
下面是我试图运行的代码C++ 未在C+;中的数组中默认初始化的索引范围+;,c++,arrays,initialization,C++,Arrays,Initialization,下面是我试图运行的代码 #include<bits/stdc++.h> using namespace std; int main() { bool x[101010]; for(int i=0;i<101010;i++) { if(x[i]) cout<<i<<" "; } return 0; } #包括 使用名称空间std; int main() { boolx[10
#include<bits/stdc++.h>
using namespace std;
int main()
{
bool x[101010];
for(int i=0;i<101010;i++)
{
if(x[i])
cout<<i<<" ";
}
return 0;
}
#包括
使用名称空间std;
int main()
{
boolx[101010];
对于(int i=0;i
布尔类型变量的默认值为false
这里不是真的,因为
- 如果T是
非POD(直到C++11)
类类型,则将考虑构造函数并根据空参数列表进行重载解析。调用所选构造函数(默认构造函数之一)以提供新对象的初始值
- 如果T是数组类型,则数组的每个元素都默认初始化
- 否则,什么也不做:具有自动存储持续时间的对象(及其子对象)被初始化为不确定值
x
被声明为具有自动存储持续时间的本地对象,它是一个非类类型的数组;x
的所有元素的值都将是不确定的值
布尔类型变量的默认值为false
这里不是真的,因为
- 如果T是
非POD(直到C++11)
类类型,则将考虑构造函数并根据空参数列表进行重载解析。调用所选构造函数(默认构造函数之一)以提供新对象的初始值
- 如果T是数组类型,则数组的每个元素都默认初始化
- 否则,什么也不做:具有自动存储持续时间的对象(及其子对象)被初始化为不确定值
x
被声明为具有自动存储持续时间的本地对象,它是一个非类类型的数组;x
的所有元素的值都将是不确定的值。您的问题可以归结为:
bool x;
std::cout << x;
这将递归地对数组的每个元素进行值初始化,而对bool
进行值初始化实际上就是将其设置为false
您的问题可以归结为:
bool x;
std::cout << x;
这将递归地对数组的每个元素进行值初始化,而对bool
进行值初始化实际上就是将其设置为false