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++ - 声明时初始化的char数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37493138/