这个||怎么看呀,有点搞不懂

这个||怎么看呀,有点搞不懂

int a,x=1,y=1;

a=x++||y++;

printf("\n%d %d %d\n",x,y,a);

x++是取x的值,然后x=x+1
a||b如果a为true,b无论true还是false,结果都为true,所以不用执行b
所以a=x++||y++,x=1,a=1||y++,a为true也就是1,x=x+1=2,y++不用执行,所以y值不变,还是1

||

逻辑或

表达式||表达式

左到右

双目运算符

||是逻辑或
它跟|的区别:
1.|是算术运算符,两边的表达式全部会转为int型进行运算
||是逻辑运算符,两边的表达式全部转为bool型参与运算
2.|没有短路特性,所有表达式要全部计算一遍,最终完成或运算;
||有短路特性,不管几个||串联在一起,只要有一个表达式为真,直接返回真,后面的不再继续执行

|| 逻辑或
这样写代码小心被别人揍