• c语言运算符号详细说明


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

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

    C语言中的符号
    运算符的种类
    语言的运算符可分为以下几类:

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

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

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

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

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

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

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

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

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

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

    优先级排序:

    优先级1级 结合方向 左结合(自左至右)编辑
    ( ) 圆括号
    [ ] [1]  下标运算符
    -> 指向结构体成员运算符
    . 结构体成员运算符[1]  (请注意它是一个实心圆点)
    
    优先级2级 结合方向 右结合(自右至左)单目运算符编辑
    ! 逻辑非运算符
    ~ 按位取反运算符
    ++ 自增运算符
    -- 自减运算符
    - 负号运算符
    (类型) 类型转换运算符
    * 指针运算符
    & 地址与运算符
    sizeof 长度运算符
    
    优先级3级 结合方向 左结合 双目运算符编辑
    * 乘法运算符
    / 除法运算符
    % 取余运算符
    
    优先级4级 结合方向 左结合 双目运算符编辑
    + 加法运算符
    - 减法运算符
    
    优先级5级 结合方向 左结合 双目运算符编辑
    << 左移运算符
    >> 右移运算符
    
    优先级6级 结合方向 左结合 双目运算符编辑
    <、<=、>、>= 关系运算符
    
    优先级7级 结合方向 左结合 双目运算符编辑
    == 等于运算符 (判断)
    != 不等于运算符(判断)
    
    优先级8级 结合方向 左结合 双目运算符编辑
    & 按位与运算符
    
    优先级9级 结合方向 左结合 双目运算符编辑
    ^ 按位异或运算符
    
    优先级10级 结合方向 左结合 双目运算符编辑
    | 按位或运算符 举例:0xfe|0xef 即为1111 1110 与1110 1111按位或运算则答案为:1111 1111 即0xff。
    
    优先级11级 结合方向 左结合 双目运算符编辑
    && 逻辑与运算符
    
    优先级12级 结合方向 左结合 双目运算符编辑
    || 逻辑或运算符
    
    优先级13级 结合方向 右结合 三目运算符编辑
    ? : 条件运算符
    
    优先级14级 结合方向 右结合 双目运算符编辑
    = 赋值运算符
    + = 加后赋值运算符 如s+=1表示s=s+1
    - = 减后赋值运算符 如s-=1表示s=s-1
    * = 乘后赋值运算符
    / = 除后赋值运算符
    % = 取模后赋值运算符
    < <= 左移后赋值运算符
    >>=右移后赋值运算符
    &= 按位与后赋值运算符
    ^=按位异或后赋值运算符
    |= 按位或后赋值运算符
    
    优先级15级 结合方向 左结合编辑
    , 逗号运算符

    说明:
    同一优先级的运算符,运算次序由结合方向所决定。
    简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

  • 相关阅读:
    LayoutInflater介绍及例子
    Java对象转换为Json对象
    重写Object.equals()方法和Object.hashCode()方法
    初步理解一下:SOA, SOAP, Web Service, WSDL等
    JSP九大内置对象及四个作用域
    Visual Studio的导入和导出设置
    winform三态树的构建和使用
    关于android编程使用android.hardware.Camera 方向不对的问题
    xampp软件包如何重置mysql的 密码
    有关.NET中的config文件的一些问题
  • 原文地址:https://www.cnblogs.com/webmen/p/5739701.html
Copyright © 2020-2023  润新知