码迷,mamicode.com
首页 > 编程语言 > 详细

C语言学习点滴(三)

时间:2015-08-06 11:25:45      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

1级优先级 左结合
  () 圆括号 
  [] 下标运算符 
  -> 指向结构体成员运算符 
  . 结构体成员运算符 
2级优先级 右结合 
  ! 逻辑非运算符 
  ~ 按位取反运算符 
  ++ 自增运算符 
  -- 自减运算符 
  - 负号运算符 
  (类型) 类型转换运算符 
  * 指针运算符 
  & 地址与运算符 
  sizeof 长度运算符 
3级优先级 左结合 
  * 乘法运算符 
  / 除法运算符 
  % 取余运算符 
4级优先级 左结合
  + 加法运算符 
  - 减法运算符 
5级优先级 左结合 
  << 左移运算符 
  >> 右移运算符 
6级优先级 左结合 
  <、<=、>、>= 关系运算符 
7级优先级 左结合 
  == 等于运算符 
  != 不等于运算符 
8级优先级 左结合 
  & 按位与运算符 
9级优先级 左结合 
  ^ 按位异或运算符 
10级优先级 左结合 
  | 按位或运算符 
11级优先级 左结合 
  && 逻辑与运算符 
12级优先级 左结合 
  || 逻辑或运算符 
13级优先级 右结合 
  ? : 条件运算符 

14级优先级 右结合 
  = += -= *= /= %= &= ^= |= <<= >>= 全为赋值运算符
15级优先级 左结合 
  , 逗号运算符 

优先级的顺序是从上往下递增,在同等级的情况中我们要遵循[左结合/右结合]的原理

例:
if(!a>10) 
    return 1;
else
    return 0;

上面这个例子:可能我们想的时候是a>10 取反,但是这里的结果恰恰相反。

在这个例子中 ! 的优先级最大  ,先运算的 !a   ,在把运算的结果0或1 同10 进行比较。

如果我们在搞不懂优先级别的情况下,可以添加()来提升运算的优先级别。()的优先级别最高

if(!(a>10))
    return 1;
else
    return 0;

这里就是先对a>10进行比较,然后在对比较的值取反。


C语言学习点滴(三)

标签:

原文地址:http://my.oschina.net/u/2421636/blog/488487

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!