C 语言(2)

2. 运算符

2.1 运算符

1)   算术运算符:用于各类数值运算。包括加 (+) 、减 (-) 、乘 (*) 、除 (/) 、求余(或称模运算,% )、自增 (++) 、自减 (--) 共七种。

2)   关系运算符:用于比较运算。包括大于 (>) 、小于 (<) 、等于 (==) 、 大于等于 (>=) 、小于等于 (<=) 和不等于 (!=) 六种。

3)   逻辑运算符:用于逻辑运算。包括与 (&&) 、或 (||) 、非 (!) 三种。

4)   位操作运算符:参与运算的量,按二进制位进行运算。包括位与 (&) 、位或 (|) 、位非 (~) 、位异或 (^) 、左移 (<<) 、右移 (>>) 六种。

5)   赋值运算符:用于赋值运算,分为简单赋值 (=) 、复合算术赋值 (+=,-=,*=,/=,%=) 和复合位运算赋值 (&=,|=,^=,>>=,<<=) 三类共十一种。

6)   条件运算符:这是一个三目运算符,用于条件求值 (? :) 。

7)   逗号运算符:用于把若干表达式组合成一个表达式 (,) 。

8)   指针运算符:用于取内容 (*) 和取地址 (&) 二种运算。

9)   求字节数运算符:用于计算数据类型所占的字节数 (sizeof) 。

10)  特殊运算符:有括号 () ,下标 [] ,成员 (→,.) 等几种。

2.2 运算符的优先级和结合性

一般而言,单目运算符优先级较高,赋值运算符优先级低。

算术运算符优先级较高,关系和逻辑运算符优先级较低。

逻辑运算符的优先级低于关系运算符。

移位运算符的优先级低于算术运算符,高于关系运算符。

赋值 < 逻辑 < 关系 < 移位 < 算术。

“&&” 和 “||” 低于关系运算符,“!” 高于算术运算符。

优先决

括号成员第一;   //括号运算符 []() , 成员运算符. ->

全体单目第二;   //所有的单目运算符比如 ++ -- + (正) - (负) 指针运算 * &

乘除余三,加减四;   //这个"余"是指取余运算即 %

移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等

等于(与)不等排第七;  //即== !=

位与异或和位或; //这几个都是位运算:位与 (&) 异或 (^) 位或 (|)

"三分天下"八九十;

逻辑或跟与; //逻辑运算符:|| 和 &&

十二和十一; //注意顺序:优先级 (||) 低于优先级 (&&)

条件高于赋值,   //三目运算符优先级排到 13 位只比赋值运算符和 "," 高

逗号运算级最低! //逗号运算符优先级最低

多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。

posted @ 2024-03-06 14:19  kitsum  阅读(16)  评论(0编辑  收藏  举报