C语言中具有右结合性的运算符包括所有单目运算符以及赋值运算符(=)和条件运算符。其它都是左结合性。

判断表达式计算顺序时,先按优先级高的先计算,优先级低的后计算,当优先级相同时再按结合性,或从左至右顺序计算,或从右至左顺序计算。

C语言中的符号

运算符的种类

语言的运算符可分为以下几类:

1 算术运算符

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

2.关系运算符

用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)

、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符

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

4.位操作运算符

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

5.赋值运算符

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

6.条件运算符

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

7.逗号运算符

用于把若干表达式组合成一个表达式(,)。

8.指针运算符

用于取内容(*)和取地址(&)二种运算。

9.求字节数运算符

用于计算数据类型所占的字节数(sizeof)。

10.特殊运算符

有括号(),下标[],成员(→,.)等几种。

优先级排序:

  1. 优先级1 结合方向 左结合(自左至右)编辑
  2. ( ) 圆括号
  3. [ ] [1] 下标运算符
  4. -> 指向结构体成员运算符
  5. . 结构体成员运算符[1] (请注意它是一个实心圆点)
  6. 优先级2 结合方向 右结合(自右至左)单目运算符编辑
  7. ! 逻辑非运算符
  8. ~ 按位取反运算符
  9. ++ 自增运算符
  10. -- 自减运算符
  11. - 负号运算符
  12. (类型) 类型转换运算符
  13. * 指针运算符
  14. & 地址与运算符
  15. sizeof 长度运算符
  16. 优先级3 结合方向 左结合 双目运算符编辑
  17. * 乘法运算符
  18. / 除法运算符
  19. % 取余运算符
  20. 优先级4 结合方向 左结合 双目运算符编辑
  21. + 加法运算符
  22. - 减法运算符
  23. 优先级5 结合方向 左结合 双目运算符编辑
  24. << 左移运算符
  25. >> 右移运算符
  26. 优先级6 结合方向 左结合 双目运算符编辑
  27. <、<=、>、>= 关系运算符
  28. 优先级7 结合方向 左结合 双目运算符编辑
  29. == 等于运算符 (判断)
  30. != 不等于运算符(判断)
  31. 优先级8 结合方向 左结合 双目运算符编辑
  32. & 按位与运算符
  33. 优先级9 结合方向 左结合 双目运算符编辑
  34. ^ 按位异或运算符
  35. 优先级10 结合方向 左结合 双目运算符编辑
  36. | 按位或运算符 举例:0xfe|0xef 即为1111 1110 1110 1111按位或运算则答案为:1111 1111 0xff
  37. 优先级11 结合方向 左结合 双目运算符编辑
  38. && 逻辑与运算符
  39. 优先级12 结合方向 左结合 双目运算符编辑
  40. || 逻辑或运算符
  41. 优先级13 结合方向 右结合 三目运算符编辑
  42. ? : 条件运算符
  43. 优先级14 结合方向 右结合 双目运算符编辑
  44. = 赋值运算符
  45. + = 加后赋值运算符 s+=1表示s=s+1
  46. - = 减后赋值运算符 s-=1表示s=s-1
  47. * = 乘后赋值运算符
  48. / = 除后赋值运算符
  49. % = 取模后赋值运算符
  50. < <= 左移后赋值运算符
  51. >>=右移后赋值运算符
  52. &= 按位与后赋值运算符
  53. ^=按位异或后赋值运算符
  54. |= 按位或后赋值运算符
  55. 优先级15 结合方向 左结合编辑
  56. 逗号运算符

说明:

同一优先级的运算符,运算次序由结合方向所决定。

简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

c语言运算符号详细说明的更多相关文章

  1. c语言运算符号的优先级

    c语言运算符号的优先级 本文来自百度搜索只为查看方便 优先级等级口诀: 圆方括号.箭头一句号, 自增自减非反负.针强地址长度, 乘除,加减,再移位, 小等大等.等等不等, 八位与,七位异,六位或,五与 ...

  2. 【C语言】符号优先级

    一. 问题的引出 今天看阿里的笔试题,看到一个非常有意思的题目,但是很容易出错. 题目:如下函数,在32bit系统foo(2^31-3)的值是: Int foo(int x) { return x&a ...

  3. (转)C语言运算符优先级 详细列表

    C语言运算符优先级 详细列表 文章转自:Slyar Home 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括号 (表达式)/函数 ...

  4. c语言运算优先级与结合方向的问题

    c语言运算的结合方向一直困扰我,不过我终于get到了哈哈 先附上c语言运算优先级和结合方向图片 以上有c语言一共的15个优先级,从上往下递增 c语言的运算符号有很多,当我们打代码或者看代码的时候符号多 ...

  5. SAS︱操作语句(if、do、select、retain、array)、宏语言、统计量、运算符号

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- SAS中的一些常见的符号.运算符是一种符号①比 ...

  6. Java运算符号,对象赋值,别名

    生活发生的一切,才会促使着我继续前行,今天继续更新哦,看书中的代码练习. 例子1  引入net.mindview.util.Print.* ,方便打印结果. package com.date0529; ...

  7. 如何用MathType编辑集合运算符号

    在涉及到集合的运算中,有交并且几种常见的运算,这在数学问题中也是很常见的公式.在用MathType编辑这些符号时,该怎么编辑呢?下面就介绍MathType集合运算符号的编辑方法. 具体操作过程如下: ...

  8. Linux中设置vim自动在运算符号两边加上空格

    vim中设置自动在=+-之类的运算符号左右两边加上空格.原版的vim不带这个功能,写出的代码例如z=x+y,不美观,很多编译器(如VS)能够自动在符号两边加上空格,如z = x + y,看起来比较美观 ...

  9. tensorflow 关于 矩阵 运算 + 符号得含义。 2维 数组 + 1纬数组, 就是每一行都 加一边 1纬数组。 呵呵

    小锋子Shawn(403568338)  13:51:23mnist.training.images?墨须(964489899)  13:51:27我的图片是100*100的,该怎么兼容.  小锋子S ...

随机推荐

  1. MYSQL使用指南(下)

    在上篇我们讲了登录.增加用户.密码更改等问题.下篇我们来看看MySQL中有关数据库方面的操作.注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束. 一 ...

  2. 查看当前linux系统位数

    linux系统也有位数之分,所以在linux上安装一些软件,比如jdk之类的就需要注意下版本. 查看linux系统位数最简单的命令(这里以redhat为例,不同版本linux命令也许不同) 命令1:g ...

  3. 【转】.Net中通过反射技术的应用----插件程序的开发入门

    转自:http://www.cnblogs.com/winloa/archive/2012/03/25/2416355.html .Net中通过反射技术的应用----插件程序的开发入门 再开始之前,先 ...

  4. Trac的使用思考

    为什么要使用Trac? 这是由于在软件开发当中需要设定阶段性的目标,和进行文档的统一归档,并且便于进行多人协同工作. Trac是基于Python开发的.所以要使用Trac就需要对于Python有一定的 ...

  5. eclipse下使用Genymotion调试Android程序出现的问题

    一. The connection to adb is down, and a severe error has occured. You must restart adb and Eclipse. ...

  6. 更改input【type=file】样式

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. 移动端Web开发如何处理横竖屏

    <!Doctype html> <html> <head> <meta charset="utf-8"> <meta id=& ...

  8. 在Swift中使用libxml2

    // // main.swift // C150805_libxml2r2 // http://git.oschina.net/yao_yu/Swift2015/tree/master/C150805 ...

  9. c++给数组赋值

    c++的基础不牢啊.甚至是c语言也忘记了..所以以后遇到感觉怪异的语法都保存下来,没事翻翻看看 例一 void getSize(int n[]) //把数组名传给函数的形参时候 一维数组[]不用指定大 ...

  10. Runtime-b

    感谢大神分享 依旧是网上很多runtime的资料,依旧是看不懂,,,这里给大家转化一下runtime,使它由隐晦难懂变得通俗易懂. (虽然截图和语言组织的有些凌乱,但是大家还是一点一点的阅读下去吧,可 ...