执行以下代码后,变量x,y,z的值分别是?

二、执行以下代码后,变量x, y, z的值分别是?

int a=1, b=0, x, y, z;

x=(--a==b++)? --a: ++b;

y=a++;

z=b;

( x= y=; z=)

-1 -1 1

x=-1
y=-1
z=1

--a==b++:先执行a=a-1,a变成0,再执行a==b的判断,满足条件
执行--a,a变为-1,并赋值给x,x=-1,最后执行b++,b变成1

y=a++:先把a赋值给y,再执行a=a+1;y=-1

z=b,b为1,故z=1

-1 -1 1
(--a==b++)相当于0 == 0为真返回--a
所以x = -1 此时a = -1,b = 1
y=a++;先把a赋给y再++
所以y = -1, a = 0
z = b = 1


x=-1
y=-1
z=1