C++相談室 part31
■ このスレッドは過去ログ倉庫に格納されています
0696デフォルトの名無しさん
NGNGbool Foo(){
return false;
}
でこの時、
main(){
int a = 0;
bool b = true;
if (a == 0 && b || Foo()) // A
a = 1;
if (a == 0 && b || Foo()) // B
a = 1;
}
と言う事をするとAではFoo()は呼ばれません。
これはbがtrueだからFooを実行しなくともifは真になる為、呼ばれないのは解ります。
しかしBではFoo()が呼ばれてしまいます。
漏れ的考えではa=1になってる為に最初のa == 0で偽になり、その後の条件は実行されないと思っていましたが・・・。
これは一体何故でしょう?
なお、コンパイラはVC++6.0です。
■ このスレッドは過去ログ倉庫に格納されています