-6

これらの論理演算子について混乱しています。誰かがこれらの演算子の優先順位と連想規則を説明してくれませんか? ビット単位の演算では、a=011、b=010、c=001 d では、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 に答える