[请益] C语言最后输出请教...

楼主: dealdream (梦想执行家)   2017-07-27 21:11:40
int a=0 , b=0;
if( ((a=1)>b || ((b=2)>a))
{
a+=10;
b+=10;
}
printf("%d,%d",a,b);
答案: 11,10
既然a都11了,
为什么b不会是12呢?
作者: manlike ( )   2017-07-27 21:14:00
因为后if ||前面是true后面就不会再执行的了shortcut logical operator
作者: AMG6000   2017-07-27 21:15:00
捷径运算 后面不执行
楼主: dealdream (梦想执行家)   2017-07-27 21:18:00
哦喔 原来如此!! 只要有一个是true,后面不管接几个都不会执行吗?多谢m大,A大 !
作者: pt7441 (批踢)   2017-07-27 22:31:00
捷径运算
作者: jachin (火腿哥)   2017-07-27 23:25:00
注意c,C++,Java都是捷径运算,但Ada默认and, or都是完全运算
楼主: dealdream (梦想执行家)   2017-07-27 23:50:00
yes,sir !
作者: williamsm (Roger)   2017-07-28 11:33:00
你可以比较一下 || 跟&&

Links booklink

Contact Us: admin [ a t ] ucptt.com