以下のインデントがおかしなコードをご覧ください。
#include <stdio.h> int main(void) { int a, b; a = 1; b = 0; if (a) if (b) printf("aもbも真アルよ"); else printf("aは真だけどbは偽アルよ"); return 0; }
printf文の中に記述した文言を読んでしまうと答えがバレバレですが、このコードにおいてelseはどちらのifに対応するのかと聞かれるとちょっと迷いますよね。
書籍によると、同じブロックで「どのelseとも対応していない」「最も近いif」に対応するそうです。上のコードでは if(b)に対応することになります。
ちなみに、コードの実行結果は以下のとおりです。
aは真だけどbは偽アルよ