"!x++"之说,各人见解不同,但真理只有一个。我只尝试着说出一种见解,未知真相。
何如?
"!x++"等价于"!(x++)"。
理论分析
后置++运算优先级高于逻辑非!,所以先运算优先级高的,也就是x++;然后再运算!(x++)。
实验结果
if (!x++){ printf("hello world! "); }
上边代码的反汇编结果如下:
分析
从反汇编代码中可以看出,先计算加法,然后进行逻辑非的运算。由此,可以证明一些问题。