刚碰c一天的菜鸟求助。

    int x,y,z;
    x=y=z=1;        
--x||--y&&z++;
    printf("x=%d,y=%d,z=%d\n",x,y,z);
    x=y=z=0;    
    x++&&--y||++z;
    printf("x=%d,y=%d,z=%d\n",x,y,z);
    x=y=z= -1;   
    x++||y++&&++z;
    printf("x=%d,y=%d,z=%d\n",x,y,z);

这个怎么算,错了很多。

这个用编译器单步调试,慢慢看,或者把各种运算符的优先级烂熟于心

真心想说一句,这样的问题就不要问了,那本书该换了,坑了一批又一批初学者。
逻辑与 AND && 从左到右 //优先级比||高
逻辑或 OR || 从左到右
i++ 先使用再加1,++1先加一在使用
举个例子
int s;
s=(++1)+1;//s=3,i=2

s=(i++)+1;//s=2,i=2;

x=0,y=0,z=1
x=1,y=0,z=1
x=0,y=-1,z=-1