c语言操作符优先级(转自博客园)

来源:互联网 发布:黑莓9900 软件 编辑:程序博客网 时间:2024/05/20 00:10

                                                                         c语言操作符优先级

优先级

运算符

    

要求运算

对象的个数

结合方向

1

()

[]

->

.

圆括号

下标运算符

指向结构体成员运算符

结构体成员运算符

 

自左至右

2

!

逻辑非运算符

1

(单目运算符)

自右至左

~

按位取反运算符

++

自增运算符

--

自减运算符

-

负号运算符

(类型)

类型转换运算符

*

指针运算符

&

地址与运算符

sizeof

长度运算符

3

*

/

%

乘法运算符

除法运算符

求余运算符

2

(双目运算符)

自左至右

4

+

-

加法运算符

减法运算符

2

(双目运算符)

自左至右

5

<< 

>> 

左移运算符

右移运算符

2

(双目运算符)

 

6

<=

>=

关系运算符

2

(双目运算符)

自左至右

7

==

!=

等于运算符

不等于运算符

2

(双目运算符)

自左至右

8

&

按位与运算符

2

(双目运算符)

自左至右

9

^

按位异或运算符

2

(双目运算符)

自左至右

10

|

按位或运算符

2

(双目运算符)

自左至右

11

&&

逻辑与运算符

2

(双目运算符)

自左至右

12

||

逻辑或运算符

2

(双目运算符)

自左至右

13

? :

条件运算符

3

(三目运算)

自右至左

14

=

+=

-=

*=

/=

%=

>>=

<<=

&=

^=

|=

赋值运算符

2

自右至左

15

,

逗号运算符

 

自左至右


                                                              
例如:
void main()
{
int x=3;
printf("%d\n",x+=x==x*x);
}

由优先级顺序可知:  
                 x+=x==x*x等价于:x+=(x==(x*x))
所以输出结果为:3;


补充:
        c语言中没有bool值,只有0和1,其中==比较运算符真为1,假为0.
原创粉丝点击