int main() { int x = 2, y, z; x *= (y = z = 5); printf("%d\n", x); z = 3; x == (y = z); printf("%d\n", x); x = (y == z); printf("%d\n", x); x = (y & z); printf("%d\n", x); x = (y && z); printf("%d\n", x); y = 4; x = (y | z); printf("%d\n", x); x = (y || z); printf("%d\n", x); getchar(); return 0; }
1 2 3 4 5 6 7 8 9 10 11
分析: x *= (y = z = 5) => z = 5, y = 5, x = x * y = 10;
z = 3; x == (y = z); => z = 3, y = 3, x = 10; x = (y == z); => z = 3, y = 3, x = 1; x = (y & z); => z = 3, y = 3, x = 3; x = (y && z); => z = 3, y = 3, x = 1; y = 4; x = (y | z); => z = 3, y = 4, x = 7; x = (y || z); => z = 3, y = 4, x = 1;