C语言运算符
🧮 C运算符大全——编程世界的「数学工具包」
运算符就像程序员手中的魔法棒✨,能进行各种计算和判断。下面用最有趣的方式拆解所有运算符!
一、算术运算符——基础计算器 🧮
作用:处理数字的加减乘除
| 运算符 | 描述 | 例子 | 生活类比 |
|---|---|---|---|
+ |
加法 | 3 + 5 → 8 |
苹果🍎 + 香蕉🍌 = 总水果数 |
- |
减法 | 10 - 4 → 6 |
钱包💰减掉支出 = 剩余金额 |
* |
乘法 | 2 * 3 → 6 |
每人2块🍕,3人共需6块 |
/ |
除法 | 10 / 3 → 3 |
10块糖分3人,每人3块(整数除) |
% |
取余 | 10 % 3 → 1 |
10块糖分3人,剩下1块🍬 |
++ |
自增1 | a++ vs ++a |
先吃蛋糕🎂 vs 先加奶油再吃 |
-- |
自减1 | b-- vs --b |
先喝奶茶🧋 vs 先减糖再喝 |
示例代码:
1 | int 苹果 = 5; |
二、关系运算符——比大小专家 ⚖️
作用:比较两个值的关系,返回真(1)或假(0)
| 运算符 | 描述 | 例子 | 生活类比 |
|---|---|---|---|
== |
等于 | 5 == 3 → 0 |
检查密码是否正确🗝️ |
!= |
不等于 | 5 != 3 → 1 |
判断奶茶口味是否不同🧋 |
> |
大于 | 5 > 3 → 1 |
比较考试成绩📊 |
< |
小于 | 5 < 3 → 0 |
判断年龄是否符合条件👶→👨 |
>= |
大于等于 | 5 >= 5 → 1 |
身高是否达标📏 |
<= |
小于等于 | 5 <= 3 → 0 |
体重是否超标⚖️ |
示例代码:
1 | int 温度 = 25; |
三、逻辑运算符——真假判官 🕵️♂️
作用:组合多个条件判断
| 运算符 | 描述 | 例子 | 生活类比 |
|---|---|---|---|
&& |
逻辑与 | (A && B) |
双人合作任务👫→都同意才执行 |
| ` | ` | 逻辑或 | |
! |
逻辑非 | !A |
取反操作🔄→真变假,假变真 |
短路特性:
1 | int a = 0; |
四、位运算符——二进制操控师 🔧
作用:直接操作二进制位
| 运算符 | 描述 | 例子(A=60=0011 1100) |
|---|---|---|
& |
按位与 | A & 13 → 12 (0000 1100) |
| ` | ` | 按位或 |
^ |
按位异或 | A ^ 13 → 49 (0011 0001) |
~ |
按位取反 | ~A → -61 (1100 0011) |
<< |
左移 | A << 2 → 240 (1111 0000) |
>> |
右移 | A >> 2 → 15 (0000 1111) |
生活场景:
- 权限控制:用位掩码管理用户权限🔐
- 加密算法:异或操作用于简单加密🔒
五、赋值运算符——快捷存钱罐 🐖
作用:简化变量赋值操作
| 运算符 | 例子 | 等价写法 | 生活类比 |
|---|---|---|---|
= |
a = 5 |
a = 5 |
存钱罐放入5元💰 |
+= |
a += 3 |
a = a + 3 |
往存钱罐加3元 |
-= |
a -= 2 |
a = a - 2 |
取出2元 |
*= |
a *= 4 |
a = a * 4 |
钱翻4倍 |
/= |
a /= 2 |
a = a / 2 |
钱平分两份 |
%= |
a %= 3 |
a = a % 3 |
分钱后剩下的零钱 |
示例代码:
1 | int 钱包 = 100; |
六、杂项运算符——多功能瑞士军刀 🔪
| 运算符 | 描述 | 例子 | 作用 |
|---|---|---|---|
sizeof() |
获取变量/类型大小 | sizeof(int) → 4 |
查看数据占内存多少字节💾 |
& |
获取变量地址 | &a → 0x7ffe... |
找到变量在内存中的门牌号🏠 |
* |
指针运算符 | *ptr → 访问指针指向的值 |
用地址打开对应的储物柜🗄️ |
?: |
三元条件运算符 | a > b ? a : b |
快速二选一(像自动售货机🤖) |
三元运算符示例:
1 | int 最大温度 = (今天温度 > 昨天温度) ? 今天 : 昨天; |
七、运算符优先级——计算顺序交通灯 🚥
口诀:
括号成员是老大;
单目运算排老二;
乘除余三加减四;
移位五来关系六;
等与不等排第七;
位与异或位或八九十;
逻辑或和与;
条件赋值逗号垫底。
优先级表速记:
()→ 最优先!++--&(单目)*/%+-<<>>><>=<===!=&&→ 逻辑与||→ 逻辑或=+=等赋值操作
示例:
1 | int result = 5 + 3 * 2; // 先乘后加 → 11 |
🚧 避坑指南
自增/自减陷阱:
1
2int a = 5;
int b = a++ + ++a; // ❌ 结果不确定!避免同一变量多次自增浮点比较误差:
1
2float x = 0.1 + 0.2;
if (x == 0.3) { /* 可能不成立!应用范围判断 */ }逻辑与/或短路:
1
2int *ptr = NULL;
if (ptr != NULL && *ptr > 0) { /* 安全访问 */ }
🌟 实战练习
题目:用三元运算符判断成绩是否及格
1 | int 分数 = 75; |
题目:位运算实现权限控制
1 |
|
掌握这些运算符,你就能像操控魔法一样编写程序啦!🎮 遇到问题随时复习这张”运算符地图”🗺️
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Matou🚢!
评论


