C语言运算符与表达式详解——算术、逻辑与赋值的全面理解

⚙️ C语言运算符与表达式详解------算术、逻辑与赋值的全面理解

C语言运算符与表达式详解------算术、逻辑与赋值的全面理解

🧩 一、前言

在上一节,我们学习了变量的定义和输入输出函数(printf、scanf)。

但程序真正的"灵魂",在于它能对数据进行运算与逻辑判断。

这节课,我们就来全面掌握 C语言的运算符与表达式 ------

让你的程序不仅能"显示",还能"思考"!


🧮 二、什么是运算符与表达式

✅ 运算符(Operator)

运算符是对变量或常量进行操作的符号。

例如:+、-、*、/、%、==、&& 等。

✅ 表达式(Expression)

表达式是由运算符和操作数组成的式子,计算后能得到一个结果。

例如:

a + b

x * y - 3

(a + b) * c


➕ 三、算术运算符(Arithmetic Operators)

算术运算符用于数学计算,是最常见的运算类型。

运算符 含义 示例 结果

  • 加 3 + 2 5
  • 减 5 - 2 3
  • 乘 4 * 3 12
    / 除 7 / 2 3 (整数相除取整)
    % 取余 7 % 2 1

🧠 注意:

  1. 若两数都是整数,/ 结果为整数。

  2. 想得到小数结果,要用浮点型:

float result = 7.0 / 2;

printf("%.2f", result); // 输出 3.50


⚖️ 四、关系运算符(Relational Operators)

用于比较两个值的大小关系,结果只有两种:

👉 真(1) 或 假(0)。

运算符 含义 示例 结果

== 等于 a == b 若相等则真

!= 不等于 a != b 若不等则真

大于 a > b 若a大则真

< 小于 a < b 若a小则真

= 大于等于 a >= b 条件满足则真

<= 小于等于 a <= b 条件满足则真

✅ 示例:

int a = 5, b = 8;

printf("%d\n", a > b); // 输出0(假)

printf("%d\n", a != b); // 输出1(真)


🧩 五、逻辑运算符(Logical Operators)

逻辑运算符用于组合多个条件,常用于 if 判断中。

运算符 含义 示例 结果

&& 与(and) a > 0 && b > 0 两个条件都真时为真
或(or)

! 非(not) !(a > b) 取反,真变假,假变真

✅ 示例:

int a = 10, b = 20;

if (a > 0 && b > 0) {

printf("a和b都是正数\n");

}


📝 六、赋值运算符(Assignment Operators)

运算符 含义 示例 等价于

= 赋值 a = 5 ---

+= 加后赋值 a += 3 a = a + 3

-= 减后赋值 a -= 2 a = a - 2

*= 乘后赋值 a *= 2 a = a * 2

/= 除后赋值 a /= 2 a = a / 2

%= 取余后赋值 a %= 3 a = a % 3

✅ 示例:

int a = 10;

a += 5; // 等价于 a = a + 5

printf("%d\n", a); // 输出15


🧮 七、自增与自减运算符

运算符 含义 示例 说明

++ 自增1 a++ 或 ++a 变量加1

-- 自减1 a-- 或 --a 变量减1

⚠️ 区别:

int a = 5;

printf("%d\n", a++); // 先使用后加 → 输出5

printf("%d\n", ++a); // 先加后使用 → 输出7


⚙️ 八、综合案例:求三个数的最大值

c 复制代码
#include <stdio.h>
int main() {
    int a, b, c, max;
    printf("请输入三个整数:");
    scanf("%d %d %d", &a, &b, &c);

    max = a;              // 先假设a最大
    if (b > max) max = b; // 比较b
    if (c > max) max = c; // 比较c

    printf("最大值为:%d\n", max);
    return 0;
}

运行结果示例:

请输入三个整数:8 3 9

最大值为:9


🧠 九、课堂小结

✅ 本节我们掌握了:

C语言中各种运算符的分类与用法

表达式计算的基本逻辑

关系与逻辑运算符在判断语句中的作用

赋值、自增、自减的简化写法


📚【IoT智慧学堂】

高职物联网与编程教学 · 从0到1学会编程

关注我,下一节一起掌握程序的"思考力"!


相关推荐
CC.GG14 分钟前
【Qt】信号和槽
开发语言·数据库·qt
是席木木啊14 分钟前
基于MinIO Java SDK实现ZIP文件上传的方案与实践
java·开发语言
一起养小猫24 分钟前
《Java数据结构与算法》第四篇(四):二叉树的高级操作查找与删除实现详解
java·开发语言·数据结构·算法
ALex_zry33 分钟前
C++20/23标准对进程间共享信息的优化:从传统IPC到现代C++的演进
开发语言·c++·c++20
IMPYLH40 分钟前
Lua 的 OS(操作系统) 模块
开发语言·笔记·后端·游戏引擎·lua
YGGP1 小时前
【Golang】LeetCode 287. 寻找重复数
开发语言·leetcode·golang
吴佳浩 Alben1 小时前
Go 1.22 通关讲解
开发语言·数据库·golang
黎雁·泠崖1 小时前
指针家族高阶篇:字符指针、数组指针、函数指针及转移表应用
c语言·开发语言
小年糕是糕手1 小时前
【C/C++刷题集】string类(一)
开发语言·数据结构·c++·算法·leetcode
a努力。1 小时前
国家电网Java面试被问:二叉树的前序、中序、后序遍历
java·开发语言·后端·面试