2017-02-12 32 views
-1

このCコードの出力は?ビット単位の演算子(インクリメントデクリメントあり)

#include <stdio.h> 

    void main() 

    { 

     int a = 5, b = -7, c = 0, d; 

     d = ++a && ++b || ++c; 

     printf("\n%d%d%d%d", a, b, c, d); 

    } 

answereは6 -6 0 1 が、私は理解していないですか論理の優先順位としてAND OR以上のものです。

+1

何ビット演算子がここにはありません理由です、はっきりtrueあるので、それが正しいhandsideをチェックしませんtrue || ++cを読み取るため。 – harold

答えて

2

aには1が加えられ、またbには++a, ++bが使用されます。 ++a && ++bの結果は真(どの式1)であり、それはちょうどdが得るものです。

それは結果をc equlas 0

関連する問題