c++ - 声明时初始化的char数组?

标签 c++ arrays char initialization

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/

相关文章:

c - 如何在 C 中对 'æ' 、 'ø' 和 'å' 进行操作

c++ - Codeblocks 16.01 中警告被视为错误

c++ - 复制构造函数中的类型

c++ - Geany 简单链接

JavaScript 排序数组,但保持第二个数组同步

c++ - 如何使用指针遍历结构数组中的数组

javascript - 无法使用node.insertBefore()方法注入(inject)DOM元素

java - JNI 'problematic frame' 导致 JVM 崩溃

c - 根据用户输入查找插值

java - Java中的char和Character有什么区别?