-
&&的截断 &&的截断在0,如A&&B,如果A为0,则表达式必为0,后面截断不看,计算也不再运行。
-
||的截断
int a=0,b=0,c=0,k=0
||的截断在于非0,如A||B,如果A为非0,则表达式必为1,后面截断不看计算也不再运行。首先要明确"与"的优先级高于"或"。
遇到逻辑与(&&)、或(||)的运算,要将与(&&)运算看成整体(将与运算用括号括起来,使得式中只存在逻辑或)值不变,然后从左向右依次计算,兼顾短路现象。注意这里的括号只起到整体作用,并不是先计算。则原式可化成:k=++a || (++b &&++c);
++a表达式的值为1,则逻辑或短路,所以括号内的表达式都不计算。
因此,输出a=1 b=0 c=0 k=1