为什么我的字符数组输出很奇怪?
2025-09-08 00:48:02为什么我的字符数组输出很奇怪?#
数组很容易隐式类型转换为首元素的指针, 字符数组 char array[size] 即转换为 char* 或 char const*.
cout << char_array 就发生了这样的转换才找到能用的函数, 而由于 约定俗成, 它会被认为是字符串进行输出.
字符串以 '\0' 作为终止字符, 所以 cout 只能一直输出到 '\0' 为止. 如果你的字符数组没有打算在末尾加上 '\0', 就不应该采用这样的输出方式, 而应该自己编写输出函数.
参见
请阅读 C 风格数组: T array[size] (C-style array) 理解 C 风格数组的传参方式.
请阅读 C 风格字符串和字符串字面值 (C-style string and string literal) 理解 C 风格字符串和字符串字面值.
请阅读 为什么字符指针不输出地址值, 而其他指针输出地址值? 理解 cout << string 具体是怎么输出的.
nba世界杯