質問: b)は成り立ちますよね、それでは成り立つ(真)成り立たない(偽)の話では説明できないのかなと思い始めました、 if(条件式)以外使って来なかったのでどうも説明できません。 ご教示頂けますでしょうか。
回答: C言語の`=`に、「等しい」という意味はありません。左右の値が等しいか比較する演算子は`==`です。 `b = a`という式は、「変数bに変数aの値を代入するとともに、bの値を式の値とする」というだけの意味しか持ちません。変数aの値と変数bの値が等しいからどうこう、というのはまったく関係ない話です。 if文の条件式には、比較演算子を使った式以外も書くことができ、「式の値が0以外なら条件が成立し、0なら成立しない」という動作になります。 つまり、`b = a`と条件式に書くと、代入後の変数bの値が0以外なら条件が成立し、0なら条件が成立しない、ということです。