main() { int a=0,b=1,c=2; if(++a>0||++b>0) ++c; printf("%d,%d,%d",a,b,c); getch(); }结果是,1。1。3
main() { int a=0,b=1,c=2; if(++a>0||++b>0) ++c; printf("%d,%d,%d",a,b,c); getch(); }结果是,1。1。3
日期:2012-05-27 20:10:34 人气:1
++b 被短路旁掉了。这是关于 “C语言序列点规则” 的一部分,&& || 运算符左右边是不同序列点。简单说就是对于 && 运算,若其左边为 0则结果已经知道了,右边不再计算,对于 || 运算,若其左边为 非 0,则结果已经知道了,右边不再计算。