在c语言与mingw环境下测试运算符优先级

  • !(逻辑非)大于*/%+-(算数运算符)
    测试内容 !0*6
    步骤 如果优先级高应该执行0*6,得0,逻辑非运算之后为1;反之,结果为6。逻辑非是单目运算符,逻辑非运算符也比较特殊,个人感觉像是()括号运算符,在使用单目运算符是相当于(!0)*6,因为!只能操作一个变量或者常量,改变!0*6这四个的位置{!6*0 0*!6 6*!0}也得不到什么有用的组合。所以最后应该还是逻辑非优先级大。
    代码演示

  • ==(等于运算符)大于!=(不等于运算符)
    测试内容 1!=1==0
    步骤 如果 ==大于!= 先计算 1==0,得0,在计算1!=0,得1。反之,先计算1!=0 ,得1,然后1==0,得0。
    代码演示

  • != 大于 (按位与)
    测试内容 3&5!=0
    步骤 如果!=运算符优先级高,先计算5!=0,结果为1,然后与3按位与,3的二进制是11,1的二进制是1,最终结果是1。反之,5的二进制是101,结果是11!=0结果是假,最终结果是0
    代码演示

  • &大于^
    测试内容 2^2&2
    步骤 如果过优先级高,先算2&2,结果是10(二进制),然后是10^10,结果是11。反之,先算2^2,结果是11,然后11&10,结果是10
    代码演示

  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章