已知inta=1,b=2;表达式!(a+b)-a&&b+2×4的值,表达式!(a-b)的值?求详细
展开全部
!(a+b)- a && b+2*4 按运算符优先律和结合律,可写为:
(!(a+b)- a) && (b+2*4)
由于 int a=1,b=2; 所以 !(a+b) = !(1+2) = !3 = 0. 0-a= -1 ( 非0 为真)。
(b+2*4) = 2+8 = 10 也为真。 && 是与运算,真真得真。
printf("%d\n",(!(a+b)-a && b+2*4)); 输出 1。
后面问的 !(a-b) = ! (-1) = 0; 因为 非0的值都是真,-1 不是0 ,所以 -1 也是真。真求反,得非,非就是 0。 printf("%d\n", !(a-b)); 输出0。
(!(a+b)- a) && (b+2*4)
由于 int a=1,b=2; 所以 !(a+b) = !(1+2) = !3 = 0. 0-a= -1 ( 非0 为真)。
(b+2*4) = 2+8 = 10 也为真。 && 是与运算,真真得真。
printf("%d\n",(!(a+b)-a && b+2*4)); 输出 1。
后面问的 !(a-b) = ! (-1) = 0; 因为 非0的值都是真,-1 不是0 ,所以 -1 也是真。真求反,得非,非就是 0。 printf("%d\n", !(a-b)); 输出0。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询