已知x=3e+5,y=0.85;
printf("%d %d\n",!x*!y,!!!x);
结果是???
在c的判断中,可以看做非0即使1。
那么来看表达式
x = 3e + 5, 也就是说 3e +5 为 !0
y = 0.85, 0.85 = !0,
接下来表达式就好做了
x = !0 , y = !0。
!x * !y -> !!0 * !!0 -> 0
!!!x -> !!!!0 -> 0
过程就是这样
0 0
这种问题直接把代码贴在codepad.org,在线可以编译运行告诉你答案。建议不要使用百度等杂牌垃圾搜素引擎。