Dennis Ritchie on the priorities of && || vs. == etc. (1982)
Early C had no separate operators for & and && or | and || . (Got that?) Instead it used the notion (inherited from B and BCPL ) of "truth-value context": where a Boolean value was expected, after "if" and "while" and so forth, the & and | operators were interpreted as && and || are now; in ordinary expressions, the…