int i=0;
i = (i==0) ? printf("1:%d\n",i),printf("2:%d\n",i): printf("dummy");
printf("3:%d",i);

これの printf("2:%d\n",i) が 4 にならないのはどうしてですか?
faq ですか?