main()
{
int x,y,z;
x=y=z=-1;
printf("%d%d%d",x,y,z);
++y&&++x||++z;
printf("%d%d%d",x,y,z);
}
为什么第二次打印x还是-1呢
++y&&++x||++z;
这里涉及到逻辑运算的优化问题,比如x||y ,如果x是1,将不会去管y的值,也就是说,y如果是个表达式将不会计算
同样,对于x&&y ,如果x是0,不会再去管y的值,
所以这里面,先算++y&&++x,++y是0,所以逻辑&&的值一定是0,你会计算++x,x的值自然不会更新
你需要先了解优先级