在「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);
}
在「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);
}
運算符||(或)& &(和)命名是bolean運算符。
它們返回0或1
在階x & &ý返回1,這是必要的,x與y將是任何數目,但0。如果它們中至少有一個等於0時,它返回0.
The operator ||如果其中至少有一個不同於0,則返回1;如果它們均爲0,則返回0。
i && j || k
相當於
(5 && 0) || -5
相當於
0 || -5
相當於1
。
邏輯運算符產生的值爲0
或1
。
@GrijeshChauhan由於沒有邏輯運營商操作數表達式在這裏有副作用,這個問題沒有必要知道任何有關短路。 – ouah
雅我注意到所以刪除我的評論,發表評論而不是問題。 –
它操作爲
((i && j) || k)
所以
(5 && 0)=0
和
0||-5=1
'5 && 0'爲0,則返回0。 -5'爲1. – 2013-07-22 15:39:15
你知道C語言中的''short-circuit concept'](http://en.wikipedia.org/wiki/Short-circuit_evaluation)嗎? Opps我注意到這裏不適用!仍然很好知道 –