[英]char array initialized at the time of declaration?
MWE是
#include <iostream>
using namespace std;
int main(void)
{
char array[255];
cout << array[0] << "\n";
cout << array[1] << "\n";
cout << array[2] << "\n";
cout << array[200] << "\n";
cout << array[253] << "\n";
cout << array[255] << "\n";
return 0;
}
和輸出是
\330
^M
`
\215
^@
^@
雖然我不知道為什么輸出會創建這個。 但是我可以說“在聲明時初始化數組”嗎?
您的數組未初始化,因此它只有未定義的值。 您可以先初始化數組:
char array[255] = {};
但這只是用0填充。 另外,請注意,您不能在此處訪問索引255:
cout << array[255] << "\n";
這將嘗試訪問數組的第256個元素,而您只有255個。
C ++中沒有隱式初始化。 在您的情況下,編譯器僅在堆棧上分配255個字節。 實際內容是任意的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.