运算符
内容简介
运算符用于组成表达式,例如计算数值、比较大小、赋值、进行逻辑判断、访问地址等。初学时重点掌握算术、关系、逻辑、赋值和 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 * 2sizeof
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.8int value = 10;
int result = value++ + ++value; // 错误示范:表达式难读且容易依赖未定义/不清晰行为注意事项
&&和||有短路特性:左边已经能决定结果时,右边不会执行。- 位运算符
& | ^ ~ << >>用于二进制位操作,不要和逻辑运算符&& || !混淆。 new/delete是 C++ 动态内存相关运算符,后续在 cppNewAndDelete操作符 和资源管理中学习。
学习路径
- 上一节:CandCpp标准输入输出
- 当前阶段:CandCPP基础
- 下一节:CandCpp流程控制