Chinaunix首页 | 论坛 | 博客
  • 博客访问: 441698
  • 博文数量: 55
  • 博客积分: 2235
  • 博客等级: 大尉
  • 技术积分: 625
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-14 13:34
文章分类
文章存档

2012年(2)

2011年(26)

2010年(1)

2009年(20)

2008年(6)

我的朋友

分类:

2009-07-16 13:22:29

C语言运算符

运算符按照优先级大小由上向下排列,在同一行的运算符具有相同优先级。第二行是所有的一元运算符。
 

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

* & (类型) sizeof

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

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

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

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

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

括号下标最优先,指向结构体成员;

逻辑非后按位反,自增自减负类型;

指针地址与长度,乘除求余加减法;

左移右移找关系,等不等于按位与;

异或之后按位或,逻辑与或有条件;

赋值号多辈分低,最不优先数逗号。

 优先决
  括号成员第一; //括号运算符[]() 成员运算符. ->
  全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
  乘除余三,加减四; //这个"余"是指取余运算即%
  移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
  等于(与)不等排第七; //即== !=
  位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)
  "三分天下"八九十;
  逻辑或跟与; //逻辑运算符:|| 和 &&
  十二和十一; //注意顺序:优先级(||) 底于 优先级(&&)
  条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!
  逗号运算级最低! //逗号运算符优先级最低
阅读(807) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~