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
^@
^@
虽然我不知道为什么输出会创建这个。但我可以说 “数组在声明时初始化。”?
答案 0 :(得分:3)
您的数组未初始化,因此它只有未定义的值。您可以先初始化数组:
char array[255] = {};
但这只是填充了0&#39。另请注意,您无法在此处访问索引255:
cout << array[255] << "\n";
这将尝试访问数组的第256个元素,而您只有255个。
答案 1 :(得分:0)
c ++中没有隐式初始化。 在您的情况下,编译器在堆栈上仅分配255个字节。实际内容是任意的。