K&Rを読もう(33) 2.12 優先度と評価順序
優先順位って面倒だと思う今日この頃。You, 全部括弧つけちゃいなよ。
インクリメントの副作用
K&R P66より。予測と異なる答えが出た。
#include <stdio.h> #include <stdlib.h> int main(void) { int c = 'a'; printf("%c %c %c %c\n", c++, c++, c++, c); return EXIT_SUCCESS; }
実行してみる。
c b a d
えぇぇぇぇ・・・・バラバラなんっすけど・・・
K&Rより
ってことで、
printf("%c %c %c %c\n", c, c + 1, c + 2, c + 3);
a b c d
再代入を避ければ、副作用は無い。
関数型言語を学ぶ理由がひとつ増えた。