C++ c+中数组字符的初始化+;

C++ c+中数组字符的初始化+;,c++,arrays,visual-studio,visual-studio-2012,char,C++,Arrays,Visual Studio,Visual Studio 2012,Char,下面的方法初始化字符数组是否正确?我在我的代码中多次使用了该选项,在Visual Studio 2015中运行该程序不会显示任何错误。然而,当我在VisualStudio2012中编译同一个程序时,我得到了很多错误,主要是字符数组初始化。 那么,我的问题是这样初始化可以吗?Visual Studio 2012是否向我显示了错误 任何帮助都将不胜感激 char arr[10]={0}; 在C++11及以后的版本中(Visual Studio 2015广泛实现了这一功能,几乎没有遗漏),您可以进一

下面的方法初始化字符数组是否正确?我在我的代码中多次使用了该选项,在Visual Studio 2015中运行该程序不会显示任何错误。然而,当我在VisualStudio2012中编译同一个程序时,我得到了很多错误,主要是字符数组初始化。 那么,我的问题是这样初始化可以吗?Visual Studio 2012是否向我显示了错误

任何帮助都将不胜感激

char arr[10]={0};
在C++11及以后的版本中(Visual Studio 2015广泛实现了这一功能,几乎没有遗漏),您可以进一步编写

chararr[10]={}

这将
arr
的每个元素设置为
'\0'

<>我想放弃编译支持VS2012(这并不意味着要执行C++ 11标准),如果你能够:C++ 11标准是C++开发的一个重要的飞跃。也就是说,
char-arr[10]={0}是有效的C++03,编译错误是由于代码中的其他错误造成的。

在C++11及以后的版本中(Visual Studio 2015广泛实现了这一功能,几乎没有遗漏),您可以进一步编写

chararr[10]={}

这将
arr
的每个元素设置为
'\0'

<>我想放弃编译支持VS2012(这并不意味着要执行C++ 11标准),如果你能够:C++ 11标准是C++开发的一个重要的飞跃。也就是说,
char-arr[10]={0}是有效的C++03,编译错误是由于代码中的其他错误造成的。

在C++11中


{}

用于“聚合初始化”

聚合包括Arryas、类(结构)和联合。它省去了之前初始化数组和类的繁琐方法。空聚合初始化用于以零初始化所有内容

比如说

char arr[5] = {}
std::array<int, 3> ay{ 1,2,3 };
将使用0将arr[0]初始化为arr[4]

struct s {
    int i;
    int j;
};
struct s s1 = {};
// make s1.i = s1.j = 0;
聚合也可用于初始化值,如

char str[] {"Test String"};
// This is equivalent to 
char str[] = "Test String";
简单整数或任何其他内置数据类型也可以像

int val { 123 };
//相当于 int val=123

它还广泛应用于STL初始化。比如说

char arr[5] = {}
std::array<int, 3> ay{ 1,2,3 };
std::数组ay{1,2,3};
在C++11中


{}

用于“聚合初始化”

聚合包括Arryas、类(结构)和联合。它省去了之前初始化数组和类的繁琐方法。空聚合初始化用于以零初始化所有内容

比如说

char arr[5] = {}
std::array<int, 3> ay{ 1,2,3 };
将使用0将arr[0]初始化为arr[4]

struct s {
    int i;
    int j;
};
struct s s1 = {};
// make s1.i = s1.j = 0;
聚合也可用于初始化值,如

char str[] {"Test String"};
// This is equivalent to 
char str[] = "Test String";
简单整数或任何其他内置数据类型也可以像

int val { 123 };
//相当于 int val=123

它还广泛应用于STL初始化。比如说

char arr[5] = {}
std::array<int, 3> ay{ 1,2,3 };
std::数组ay{1,2,3};

它向您显示了什么错误?这没有什么问题。如果你有任何错误,你可能会有更多的代码,而不仅仅是那条线,一个早期的错误导致了著名的C++级联错误。它显示了什么错误?如果你有任何错误,你可能会有更多的代码,而不是前面的错误,导致错误的C++级联。