演算子の優先順位
なお、以上のような説明を述べたのは1982年のことで(K&Rの初版は1978年)、最初の標準規格であるC89よりも数年は前のことである。
C言語の影響を直接あるいは間接的に受けた言語のうち、C++、Perl、PHP、Java、C#、JavaScriptなどの多くの言語は演算子の優先順位をそのまま踏襲しているが、Goのように優先順位を修正したものもある。もともとC言語においてビット演算子の優先順位に関するケアレスミスが発生しやすいのは、真偽値型(ブーリアン型)がなく、論理演算の結果が整数型(int型)になるためでもあるが、後発のJavaやC#では論理演算の結果がブーリアン型になり、さらにC++と違ってブーリアン型から整数型への暗黙変換(汎整数拡張)もなされないため、記述ミスは大抵のケースにおいて型の不一致によるコンパイルエラーが発生することで未然に発見される。なお、C/C++においても、x & mask == yなどと書いた場合は、記述ミスの可能性があることを警告してくれるコンパイラや静的コード解析ツール (lint) もある。
Cにおける演算子の優先順位は次の通りである。
例:
!A + !B ≡ (!A) + (!B)
++A + !B ≡ (++A) + (!B)
A + B * C ≡ A + (B * C)
A || B && C ≡ A || (B && C)
(A && B == C) ≡ (A && (B == C) )
ソフトウェア開発者が二項演算子の優先順位について持っている知識の精度は、それら演算子がソースコードに出現する頻度と密接に関係していることが示されている。