-6

我对这些逻辑运算符感到困惑。有人可以解释这些运算符的优先级和关联规则吗?在逐位运算中,d 中的 a=011、b=010 和 c=001 是否应该首先否定 a 还是应该从右到左开始评估并且谁的优先级更高?输出为 4, 3,3。

#include<stdio.h>
int main()
{
 int a=3,b=2,c=1,d,e,f;
 d=~a|b&c;
 printf("d=%d\n",d);
 e=a|b&~c;
 printf("d=%d\n",e);
 f=a|b&c;
 printf("d=%d\n",f);
 return 0;
}
4

1 回答 1

2

C 一元运算符(例如~)的优先级高于二元运算符。

&运算符的优先级高于|运算符。

有关运算符优先级的摘要,请参阅man 7 运算符。

于 2014-06-14T14:51:28.387 回答