2013-04-22 143 views
0

如何做到這一點的代碼工作:「| =」運算符在C中表示什麼?

int a = 1; 
int b = 10; 

a |= b; 

如何a |= b;作品?看起來像|=不是C中的運算符嗎?

+0

是一樣的:'A = A | B'; – 2013-04-22 15:25:37

+0

這是一個基本的問題,可以通過閱讀任何像樣的C書或教程來解答。 (操作符通常出現在索引的開頭,'A'之前)。 – 2013-04-22 15:26:48

+0

請勿無故倒退。一個簡單的問題不一定是個壞問題。 – Neil 2013-04-22 15:29:50

回答

2

以下的圖案,例如,+=

a |= b; 
// Means the same thing as: 
a = a | b; 

也就是說,在任一ab設置任何比特必須在a進行設置,和那些在設置爲既不不得被設置a

2

這就是「按位或」相等。它遵循在加等於+=的圖案,減去等於-=

a |= b;相同a = a | b;

+0

「按位或等於」不是此運算符的名稱。你把它和'> ='等混淆起來,它們是比較運算符。 '| ='不是比較運算符。 – cdhowie 2013-04-22 15:26:39

+0

措辭有點奇怪,所以我會編輯它。我的意思是「按位或」相等。有點像「加號」一樣。 – 2013-04-22 15:27:26

+0

啊,是的,我明白你的意思了。 「或」確實難以用與plus-equal相同的模式構造運算符名稱。 – cdhowie 2013-04-22 15:28:13

2

表達a |= b;等效於表達a = a | b;

2

這是複合賦值運算符。 它的含義:

a = a | b; 
2

這是一樣的

a = a | b; 

一樣+=-=