以下のコードでは:
#include <stdio.h>
int main()
{
int a = 1;
int b = 1;
int c = a || --b;
int d = a-- && --b;
printf("a = %d, b = %d, c = %d, d = %d", a, b, c, d);
return 0;
}
私は出力が次のようになることを期待していました:
a=0、b=1、c=1、d=0
以下の行で短絡が発生したため、つまり a-- が 0 を返すため、他の部分は正しく実行されませんか?
int d = a-- && --b;
出力は次のとおりです。
a = 0、b = 0、c = 1、d = 0
誰でも説明できますか?