C 运算符

运算符

笔记索引

(按优先级顺序排列)
(关联性即运行顺序)

  • 表达式(从左到右关联)

    • [ ] ( ) 括号

      `.` `->` 成员选择
      
      `++` `--` 一元递增和减量运算符(后缀)
      
  • 一元运算(从右到左关联)

    • - ~ ! 求反和补数运算符

      `*` `&` 间接寻址运算符和 address-of(求址) 运算符
      
      `sizeof` Size 运算符
      
      `+` 一元加运算符
      
      `++` `--` 一元递增和减量运算符(前缀)
      
    • (typecast) 类型强制转换

  • 二元运算符(从左至右关联)

    • * / % 乘法运算符 乘、除、取余

    • + - 相加运算符 加、减

    • << >> 移位运算符 左、右

    • < > <= >= 关系运算符 小于、大于、小于等于、大于等于

    • == != 关系运算符 等于、不等于

    • & 位运算符 与

    • | 位运算符 异或

    • ^ 位运算符 与或

    • && 逻辑运算符 与

    • || 逻辑运算符 或

    • ? : 条件表达式 (从右到左关联)

    • = *= /= %= += -= <<= >>= &= ^= |= 简单和复合赋值(从右到左关联)

    • , 有序评估运算符,从左到右顺序运行

条件表达式例:

1
2
3
4
5
6
7
8
9
#include <stdio.h>

int i = -5;
int j;

void main() {
j = (i < 0) ? (-i) : (i);
printf("%d\n",j);
}
1
2
5
[C kernel] Executable exited with code 2