2013-04-22 70 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; 

一样+=-=