C运算符,简单却常被忽略,很有用的东西

一、各类运算符的优先级(从高至低):

初等运算符 ( )、[ ]、·

单目运算符 !、+ +、– –、+ 、– 、(类型)
算术运算符 *、/ 、% ,+、 –
关系运算符 <、>、<=、>= ,= =、! =
逻辑运算符 &&、¦¦

条件运算符 ? :
赋值运算符 =、+=、 –=、*=、/=、%=
逗号运算符 ,

1. 运算符
C语言具有丰富的运算符。 Turbo C 提供了44种数据操作运算符,其使用范围很宽。
运算符是一种向编译程序说明特定的运算或操作的符号。每一种运算符都具有特定的数据操作规则。

2. 运算符的分类
(1)按运算符要求运算对象的个数分类:单目运算符、双目运算符、三目运算符。
(2)按其数据操作功能分类:算术运算符、关系运算符、逻辑运算符、位运算符、C的特殊运算符 。

3.运算符的优先级
当一个表达式中出现多个运算符时,表达式的求值运算按运算符的优先级别从高到低的顺序执行。在C语言中,将44种运算符的优先级从高到低共分为15个等级。如表所示。

4.运算符的结合性
(1)运算符的左结合性:当一个操作数两侧的运算符具有相同的优先级时,操作数先与左边的运算符结合,即自左至右的结合方向。
(2)运算符的右结合性: 即自右至左的结合方向。。
除单目运算符、赋值运算符和条件运算符是右结合性外,其它运算符都是左结合性。

运算符
解释
结合方式
() [] -> . 括号(函数等),数组,两种结构成员访问
由左向右
! ~ ++ -- + - 

* & (类型) sizeof

否定,按位否定,增量,减量,正负号,

间接,取地址,类型转换,求大小

由右向左
* / % 乘,除,取模
由左向右
+ - 加,减
由左向右
<< >> 左移,右移
由左向右
< <= >= > 小于,小于等于,大于等于,大于
由左向右
== != 等于,不等于
由左向右
& 按位与
由左向右
^ 按位异或
由左向右
| 按位或
由左向右
&& 逻辑与
由左向右
|| 逻辑或
由左向右
? : 条件
由右向左
= += -= *= /= 

&= ^= |= <<= >>=

各种赋值
由右向左
, 逗号(顺序)
由左向右






Back To: Totti's 技术文档 Totti's Homepage
原文地址:https://www.cnblogs.com/zjulion/p/1088604.html