在c ++

时间:2015-10-24 14:12:23

标签: c++ boolean

我在C ++程序中有一些输入标志,它们都是假的。我认为它可能很好,如果我可以将它们全部初始化为假。所以我试过了:

bool flagA, flagB, flagH = false;

但是当我尝试这个时,标志没有正确设置。 flagA显然被初始化为真? 明确地设置标志。

bool flagA = false;
bool flagB = false;
bool flagH = false;

我正在使用g ++,并且我没有收到编译器错误或警告。我知道该程序行为不端,因为flagA设置为true时会将程序输出发送到本地打印机。就是想。

1 个答案:

答案 0 :(得分:3)

当编译器看到bool flagA, flagB, flagH = false;时,他翻译为

  

用户需要三个bool值,名为flagAflagBflagC。哦,flagC应初始化为false

的写作时间更短
bool flagA;
bool flagB;
bool flagC = false;

由于它们是局部范围变量(可能),因此无法保证使用默认值初始化它们。