『Cパズルブック』(Alan R.Feuer, 1985)
[M1 Mac, Big Sur 11.7.2, clang 13.0.0, NO IDE]
『Cプログラミングの落とし穴』をようやく読了しました。今後もプログラミングに関する名著を継続して読んでいきます。
次はベル研究所内の教材を元に製作された『Cパズルブック』です。1985年の初版なので記述形式はK&Rスタイルになります。
1.2の3番目はまずy==zで左辺右辺を比較していてイコールが成り立つのでTRUE 1になり、これをxに代入するためPRINTXの出力は1になります。比較演算子==と代入演算子=の使い分けが出題の目的です。
4番目は式自体はx = 1,とy = z = 4の比較でFALSE 0になりますが、xは1のままですから1が出力されます。
第8章までありますが、来年1月中の読了を目指します。これを読み切ったら、以前さらっと目を通しただけのK&R 第2版(ANSI C)に取り組みます。
#include <stdio.h>
#define PRINTX printf("%d\n",x)
int main() {
int x = 2, y, z;
x *= 3 + 2; // 10
PRINTX;
x *= y = z = 4; // 40
PRINTX;
x = y == z; // 1
PRINTX;
x == ( y = z); // 1
PRINTX;
return 0;
}