在下面的代碼:短路和在遞增/遞減操作者的情況下
#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
誰能請解釋?
'A - '計算結果爲' a',在本例中爲'1',然後遞減'a'。 – godel9