运算符与表达式

常见运算符

  • 算术:+ - * / %
  • 关系:< <= > >= == !=
  • 逻辑:&& || !
  • 位运算:& | ^ ~ << >>
  • 赋值:= 及复合赋值 += -= *= ...
  • 条件运算:cond ? a : b
  • 自增自减:++ --
  • 逗号:a = (b += 1, b * 2);
unsigned mask_low4(unsigned x) { return x & 0xF; }
int sign(int x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }

优先级与结合性

  • 高到低:一元 > 乘除模 > 加减 > 移位 > 关系 > 相等 > 位与 > 位异或 > 位或 > 逻辑与 > 逻辑或 > 条件 > 赋值 > 逗号
  • 尽量使用括号明确意图,避免误解。

短路求值

&&|| 具有短路特性:左侧已确定结果时不会计算右侧。