C++ c+中数组字符的初始化+;
下面的方法初始化字符数组是否正确?我在我的代码中多次使用了该选项,在Visual Studio 2015中运行该程序不会显示任何错误。然而,当我在VisualStudio2012中编译同一个程序时,我得到了很多错误,主要是字符数组初始化。 那么,我的问题是这样初始化可以吗?Visual Studio 2012是否向我显示了错误 任何帮助都将不胜感激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广泛实现了这一功能,几乎没有遗漏),您可以进一
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++级联。