以下方法是否正確初始化char數組?我已經在我的代碼中多次使用過這段代碼,並且在Visual Studio 2015中運行該程序不會顯示任何錯誤。而當我在Visual Studio 2012中編譯相同的程序時,我收到了很多錯誤,主要是使用char數組初始化。 所以,我的問題是可以初始化那種方式嗎?那麼Visual Studio 2012會向我展示一個錯誤的錯誤?在C++中對數組char進行初始化
任何幫助將不勝感激!
char arr[10]={0};
以下方法是否正確初始化char數組?我已經在我的代碼中多次使用過這段代碼,並且在Visual Studio 2015中運行該程序不會顯示任何錯誤。而當我在Visual Studio 2012中編譯相同的程序時,我收到了很多錯誤,主要是使用char數組初始化。 所以,我的問題是可以初始化那種方式嗎?那麼Visual Studio 2012會向我展示一個錯誤的錯誤?在C++中對數組char進行初始化
任何幫助將不勝感激!
char arr[10]={0};
在C++ 11起(其中大致由Visual Studio 2015年極少數遺漏實現),你可以去一個階段進一步編寫
char arr[10] = {};
這將設置每一個元素arr
到'\0'
如果你能夠:我會試圖放棄VS2012的編譯支持(它並不意味着實現C++ 11標準):C++ 11標準是一個importa nt在C++的開發中大步前進。也就是說,char arr[10] = {0};
是有效的C++ 03,您的編譯錯誤是由於您的代碼中的其他錯誤。
在C++ 11
{}
用於 「集合初始化」
的聚集體是Arryas,類(結構)和聯合。它取出了初始化數組和類的繁瑣方法,這是之前的情況。空集合初始化用於也可以用於
char arr[5] = {}
將初始化ARR [0]給Arr 0
struct s {
int i;
int j;
};
struct s s1 = {};
// make s1.i = s1.j = 0;
骨料[4]具有零
初始化一切例如初始化值如
char str[] {"Test String"};
// This is equivalent to
char str[] = "Test String";
一個簡單的整數或任何其他內置的i n個數據類型還可以初始化像
int val { 123 };
//相當於 INT VAL = 123;
它也廣泛用於STL初始化。例如
std::array<int, 3> ay{ 1,2,3 };
它顯示了什麼錯誤? –
這沒什麼錯。如果你得到任何錯誤,你可能會有更多的代碼,而不僅僅是那一行,並且以前的錯誤導致着名的C++級聯錯誤。 – molbdnilo