如果int a= 5, b=3; 执行语句"!a&&b++"后,a、b的值分别为:
A. 5, 3 B. 0, 1 C. 0, 3 D. 5, 4
答案是什么呢?就是A,有人可能会选D,因为考虑的j++的自增操作。
实际上,c++在计算表达式值时,使用一种“逻辑短路”的方法,一旦确定表达式中的值,表达式中余下部分就不会再计算了,比如上面的表达式,!a = 0,所以整个表达式值为0,则b++不会再计算,所以b不会进行自增操作。
如果int a= 5, b=3; 执行语句"!a&&b++"后,a、b的值分别为:
A. 5, 3 B. 0, 1 C. 0, 3 D. 5, 4
答案是什么呢?就是A,有人可能会选D,因为考虑的j++的自增操作。
实际上,c++在计算表达式值时,使用一种“逻辑短路”的方法,一旦确定表达式中的值,表达式中余下部分就不会再计算了,比如上面的表达式,!a = 0,所以整个表达式值为0,则b++不会再计算,所以b不会进行自增操作。