Actually the expression (a=b) evaluates to true if and only if the value of 'b' is not 0, otherwise it evaluates to false.
I'm not saying that C is the best language out there. (not to speak of C++) It has its disadvantages, but it also has its advantages. (compared to [insert your programming language here])