C 语言运算符详解

C 语言中的运算符

运算符用于对变量和值进行操作。

在下面的示例中,我们使用 + 运算符将两个值相加:

c 复制代码
int myNum = 100 + 50;

虽然 + 运算符通常用于将两个值相加,就像上面的示例一样,它还可以用于将变量和值相加,或者将变量和另一个变量相加:

c 复制代码
int sum1 = 100 + 50;      // 150 (100 + 50)
int sum2 = sum1 + 250;   // 400 (150 + 250)
int sum3 = sum2 + sum2;   // 800 (400 + 400)

C 将运算符分为以下几组:

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符

算术运算符

算术运算符用于执行常见的数学运算。

运算符名称 描述 示例
+ 加法 x + y
- 减法 x - y
* 乘法 x * y
/ 除法 x / y
% 模运算 x % y
++ 增量 ++x
-- 减量 --x

赋值运算符

赋值运算符用于将值赋给变量。

在下面的示例中,我们使用 赋值 运算符 (=) 将值 10 赋给一个名为 x 的变量:

c 复制代码
int x = 10;

加法赋值 运算符 (+=) 将值添加到变量中:

c 复制代码
int x = 10;
x += 5;

所有赋值运算符的列表:

| 运算符 | 示例 | 等同于 |
|-------|-----------|--------------|-----|-------|---|
| = | x = 5 | x = 5 |
| += | x += 3 | x = x + 3 |
| -= | x -= 3 | x = x - 3 |
| *= | x *= 3 | x = x * 3 |
| /= | x /= 3 | x = x / 3 |
| %= | x %= 3 | x = x % 3 |
| &= | x &= 3 | x = x & 3 |
| | = | x | = 3 | x = x | 3 |
| ^= | x ^= 3 | x = x ^ 3 |
| >>= | x >>= 3 | x = x >> 3 |
| <<= | x <<= 3 | x = x << 3 |

比较运算符

比较运算符用于比较两个值(或变量)。这在编程中很重要,因为它可以帮助我们找到答案和做出决策。

比较的结果返回值是 1 或 0,分别表示 true (1) 或 false (0)。这些值称为布尔值

在下面的示例中,我们使用 大于 运算符 (>) 来判断 5 是否大于 3:

c 复制代码
int x = 5;
int y = 3;
printf("%d", x > y); // 返回 1 (true) 因为 5 大于 3

所有比较运算符的列表:

运算符名称 示例
== x == y
!= x != y
x > y
< x < y
>= x >= y
<= x <= y

逻辑运算符

您还可以使用逻辑运算符测试 true 或 false 值。

逻辑运算符用于确定变量或值之间的逻辑关系:

| 运算符名称 | 描述 | 示例 |
|-------|-----|------------------------|-----|--------|---|--------|
| && | 逻辑与 | x < 5 && x < 10 |
| | | | 逻辑或 | x < 5 | | x < 4 |
| ! | 逻辑非 | !(x < 5 && x < 10) |

sizeof 运算符

可以使用 sizeof 运算符查找数据类型或变量的内存大小(以字节为单位):

c 复制代码
int myInt;
float myFloat;
double myDouble;
char myChar;

printf("%lu\n", sizeof(myInt));
printf("%lu\n

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

相关推荐
136096757239 分钟前
一台 4 核 8G 已经跑了 6 个站点,我是怎么把第 7 个塞进去的
后端
对象存储与RustFS10 分钟前
JuiceFS + 对象存储:把 S3 变成 POSIX 文件系统实测
后端·rust·开源
殷色玫瑰11 分钟前
C++ STL:map 与 set 详解——从底层红黑树到实际应用
c语言·数据结构·c++·算法·visualstudio·rpc
怕浪猫17 分钟前
Agent 工程化面试:从开发到部署的 5 个关键问题
面试·架构·github
她的男孩19 分钟前
企业接口照样拦得住:独立 Flyway、@RequiresFeature 与离线许可证
java·spring boot·后端
十年Java程序媛20 分钟前
Lambda 与函数式接口|别只会复制 ()->{},底层规则和坑一次性讲清
java·spring boot·后端
yunwei3721 分钟前
eBPF 入门开发实践教程一:Hello World,基本框架和开发流程
linux·后端·性能优化
Tri_Function22 分钟前
背包:从入门到实战
c++
全栈Agent 小李25 分钟前
【无标题】
前端·后端·agent·ai编程·全栈·cursor·mcp
高频因子挖掘机27 分钟前
历史 K 线突然少一天?用交易日历、停牌信息和数据校验逐步排查
后端·github·api