表达式的有效值是什么(uninitialized_bool?1:2)?

时间:2009-02-10 15:20:07

标签: c++ initialization

根据标准,以下有效输出的集合是什么?

bool x;
cout << (x ? 1 : 2);

编辑:未知(谷歌)已经得到它。在gcc中,我的代码崩溃是因为sprite.setFrame(isPressed ? 0 : 1)条件返回28!

5 个答案:

答案 0 :(得分:2)

如果x未初始化,则可以是true或false。因此有效输出为1或2。

答案 1 :(得分:2)

答案 2 :(得分:1)

使用未初始化的变量是未定义的。任何事情都可能发生

答案 3 :(得分:1)

  

以所述方式使用bool值   按此标准为“未定义”等   通过检查一个的价值   可能是单位化的自动变量   使它表现得既不如此   是真还是假。

欢迎来到未定义行为的世界。但首先,你为什么要这样做?

答案 4 :(得分:1)

任何事情都可能发生,包括fireTheMissiles()。