为什么我的字符数组输出很奇怪?

为什么我的字符数组输出很奇怪?#

数组很容易隐式类型转换为首元素的指针, 字符数组 char array[size] 即转换为 char*char const*.

cout << char_array 就发生了这样的转换才找到能用的函数, 而由于 约定俗成, 它会被认为是字符串进行输出.

字符串以 '\0' 作为终止字符, 所以 cout 只能一直输出到 '\0' 为止. 如果你的字符数组没有打算在末尾加上 '\0', 就不应该采用这样的输出方式, 而应该自己编写输出函数.

参见