运算符

内容简介

运算符用于组成表达式,例如计算数值、比较大小、赋值、进行逻辑判断、访问地址等。初学时重点掌握算术、关系、逻辑、赋值和 sizeof

用法

算术运算符

int a = 10;
int b = 3;
 
printf("%d\n", a + b);  // 13
printf("%d\n", a - b);  // 7
printf("%d\n", a * b);  // 30
printf("%d\n", a / b);  // 3,整数除法
printf("%d\n", a % b);  // 1,取余

关系和逻辑运算符

int age = 18;
int score = 90;
 
if (age >= 18 && score >= 60) {
    printf("pass\n");
}

赋值运算符

int count = 0;
count += 1;  // 等价于 count = count + 1
count *= 2;  // 等价于 count = count * 2

sizeof

printf("%zu\n", sizeof(int));
printf("%zu\n", sizeof count);

三目运算符

int max = a > b ? a : b;

最佳代码实践

  • 不确定优先级时加括号,清晰比少写几个字符更重要。
  • 区分赋值 = 和比较 ==
  • 整数除法会丢弃小数,需要小数结果时至少让一个操作数是浮点数。
  • sizeof 的结果类型是 size_t,用 %zu 输出。
double result = 9.0 / 5;

错误用法

if (a = b) {        // 错误:这是赋值,不是比较
    printf("same");
}
double x = 9 / 5;   // 结果是 1.0,不是 1.8
int value = 10;
int result = value++ + ++value;  // 错误示范:表达式难读且容易依赖未定义/不清晰行为

注意事项

  • &&|| 有短路特性:左边已经能决定结果时,右边不会执行。
  • 位运算符 & | ^ ~ << >> 用于二进制位操作,不要和逻辑运算符 && || ! 混淆。
  • new/delete 是 C++ 动态内存相关运算符,后续在 cppNewAndDelete操作符 和资源管理中学习。

学习路径