【发布时间】:2020-02-10 06:22:50
【问题描述】:
我试图声明两个字符数组,一个接一个。当我这样做时,数组似乎相互重叠。
#include <iostream>
int main(){
char cmnd[2] = {'l', 's'};
char flags[1] = {'a'};
std::cout << "cmnd array: " << cmnd << std::endl;
std::cout << "flags array: " << flags << std::endl;
}
这段代码的输出就变成了:
cmnd array: ls
flags array: als
根据输出我的标志数组应该只包含{'a'}实际上包含{'a','l','s'}。
为什么会出现这种情况?提前感谢您对此问题的任何见解。
【问题讨论】:
-
您的 cmnd 和 flags 数组本身没有问题。 cmnd 实际上是一个包含 2 个字符的数组,而 flags 确实是一个包含 1 个字符的数组。 “错误”是您对“std::cout