无尽之城鲤鱼乡上:关于TC的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 09:26:34
#include "stdio.h"
main()
{
int x,y,z;
x=y=z=0;
++x||++y&&++z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
}
其运行结果为什么是X=1,Y=0,Z=0.而不是

X=0.Y=1,Z=1.

++x||++y&&++z;

执行完++x后是||运算符,,这个是OR,前面的为真的话就不去执行后面的了(因为++X等于1,为真)所以Y和Z并没有被运算

或运算有1出1,当第一个为1的时候后面的不进行运算