#include
void main(){
int x,y,z; //首先声明
x=y=z=0; //赋值z=0,y=z,x=y
if(++x||++y&&++z) //首先++x,x=1,所以||(或)之后的语句不论为1还是0都不影响结果,所以不会算
//&&(与)的优先级高于||(或),所以后面可以看做一个整体
printf("x=%d,y=%d,z=%d",x,y,z); //所以y=0
}
因为++X后等于1,根据||前为1就可忽略后面的运算,所以算到X=1就终止运算了。
z=0;
y=0;
x=0;
{x=x+1}||{(y=y+1)&&(z=z+1)}
a=++z;
b=++y;
c=++x;
c||(a&&b);
嗯,,它的正确答案是1.1.1