"!x++"之说,各人见解不同,但真理只有一个。我只尝试着说出一种见解,未知真相。

何如?

    "!x++"等价于"!(x++)"。

理论分析

    后置++运算优先级高于逻辑非!,所以先运算优先级高的,也就是x++;然后再运算!(x++)。

实验结果

    if (!x++){
        printf("hello world!\n");
    }

    上边代码的反汇编结果如下:

分析

    从反汇编代码中可以看出,先计算加法,然后进行逻辑非的运算。由此,可以证明一些问题。

 

posted on 2015-09-11 12:11  amanlikethis  阅读(436)  评论(0编辑  收藏  举报