2013-07-22 20 views
0

在「C Modern approach 2nd'ed」 有些練習我無法理解意思。 結果是1,你怎麼看它?謝謝。c,如何讀操作員問題,基本知識

#include <stdio.h> 

int main(void) 
{ 

    int i, j, k; 

    i = 5; 
    j = 0; 
    k = -5; 

    printf("%d", i && j || k); 
    return (0); 

} 
+5

'5 && 0'爲0,則返回0。 -5'爲1. – 2013-07-22 15:39:15

+1

你知道C語言中的''short-circuit concept'](http://en.wikipedia.org/wiki/Short-circuit_evaluation)嗎? Opps我注意到這裏不適用!仍然很好知道 –

回答

1

運算符||(或)& &(和)命名是bolean運算符。

它們返回0或1

在階x & &ý返回1,這是必要的,x與y將是任何數目,但0。如果它們中至少有一個等於0時,它返回0.

The operator ||如果其中至少有一個不同於0,則返回1;如果它們均爲0,則返回0。

7
i && j || k 

相當於

(5 && 0) || -5 

相當於

0 || -5 

相當於1

邏輯運算符產生的值爲01

+1

@GrijeshChauhan由於沒有邏輯運營商操作數表達式在這裏有副作用,這個問題沒有必要知道任何有關短路。 – ouah

+0

雅我注意到所以刪除我的評論,發表評論而不是問題。 –

0

它操作爲

((i && j) || k) 

所以

(5 && 0)=0 

0||-5=1