在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
    代碼演示

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