易百教程

运算符优先级

运算符的优先级决定了表达式的评估顺序。

下表显示了C语言中所有运算符的优先顺序,优先顺序是从顶部的最高到底部的最低。

|  优先级     运算符               描述
|-----------------------------------------------------------------------------
|  1           ( )              括号表达式
|              []               数组下标
|              .                按对象选择成员
|              ->               按指针选择成员
|              ++ --            后缀增量和前缀减量
|-----------------------------------------------------------------------------
|  2           +  -              一元相加和相减
|              ++ --            前缀增量和前缀减量
|              !  ~             逻辑NOT和按位补码
|              *                解除引用(也称为间接运算符)
|              &                地址运算符
|              sizeof(type)     表达或类型的字节大小
|-----------------------------------------------------------------------------
| 3             *  /  %         乘法和除法和模数(余数)
| 4             +  -            加减法运算
| 5            <<  >>           按位向左移位,向右移位
| 6            <  <=            小于或小于或等于
|              >  >=            大于和大于或等于
| 7             ==  !=          等于和不等于
| 8             &               按位AND运算
| 9             ^               按位异或
| 10            |               按位OR 
| 11            &&              按位与
| 12            ||              按位OR
| 13            ?:              条件运算符
| 14            =               赋值运算符
|               +=  -=          加法赋值和减法赋值
|              /=  *=           分配和乘法分配
|              %=               模数赋值
|              <<=  >>=         按位左移分配和按位右移分配
|              &=  |=           按位AND赋值和按位OR赋值
|              ^=               按位异或分配
| 15           ,                逗号运算符