《C语言陷阱与缺陷》读书笔记 之 运算符优先

学习运算符优先级的原因

随着我们程序表达式的复杂程度越来越高,要想更好的理解表达式的含义,对我们掌握运算符的优先级提出了越来越高的要求。

C语言优先级表

运算符 结合性

() , [] ,-> .           自左向右

! , ~ , ++ , -- , - ,(type) , * , & ,sizeof    自左向右

* , / , % 自左向右

+ , - 自左向右

<< , >> 自左向右

< , <= , > , >= 自左向右

== , =!    自左向右

& 自左向右

^ 自左向右

| 自左向右

&&  自左向右

|| 自左向右

?:    自右向左

assignments 自右向左

自左向右

关于运算符优先级表的解释

1,优先级最高的其实不是真正意义上的运算符 ,包括:数组下标,函数调用操作符各结构成员选择操作符,他们都是自左向右结合。

2,单目运算符的优先级仅次于上面提到的运算符。

3,比单目运算符低的就是双目运算符。在双目运算符中,算术运算符的优先级最高,移位运算符次之,关系运算符再次之,接着是逻辑运算符,赋值运算符,最后是条件运算符。

关于运算符需要记住的两点

1,任何一个逻辑运算符都低于任何一个关系运算符

2,移位运算符的优先级比算术运算符的要低,但是比关系运算符的要高。












你可能感兴趣的:(C语言,c,c语言,读书笔记)