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