C语言基础教程(二):运算符与表达式
前言
亲爱的读者朋友们,大家好!👋
欢迎回到一如老师的公众号。今天是我们的第八天更新,我们将继续C语言基础教程系列。本期内容,我们将深入学习运算符与表达式,这是编程中非常重要的概念。掌握运算符的使用和表达式的构建,能够帮助我们编写更加灵活、高效的代码。
无论你是编程初学者,还是希望夯实基础的开发者,这篇文章都将对你有所帮助。准备好了吗?让我们开始吧!🚀
一、什么是运算符和表达式?
运算符(Operator):用于执行特定操作的符号,如加号 +
、减号-
等。操作数(Operand):运算符作用的对象,可以是常量、变量、函数返回值等。 表达式(Expression):由运算符和操作数组合而成的式子,能够计算出一个值。
示例:
int result = a + b * c;
在这个表达式中,+
和*
是运算符,a
、b
、c
是操作数。
二、C语言中的运算符分类
C语言中,运算符按照功能和操作数的个数,可以分为以下几类:
算术运算符 赋值运算符 关系运算符 逻辑运算符 位运算符 条件运算符(三目运算符) 自增自减运算符 逗号运算符 指针运算符 成员选择运算符
三、算术运算符
用于进行数学计算,支持整数和浮点数。
1. 基本算术运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
+ | 加法 | a + b |
- | 减法 | a - b |
* | 乘法 | a * b |
/ | 除法 | a b |
% | 取模(余数) | a % b(仅用于整数) |
注意:
整数除法:两个整数相除,结果仍为整数,余数被舍弃。 取模运算: a % b
的结果是a
除以b
的余数。
2. 示例代码
#include <stdio.h>
int main() {
int a = 10, b = 3;
printf("a + b = %d\n", a + b); // 13
printf("a - b = %d\n", a - b); // 7
printf("a * b = %d\n", a * b); // 30
printf("a / b = %d\n", a / b); // 3
printf("a %% b = %d\n", a % b); // 1
return 0;
}
四、赋值运算符
用于给变量赋值。
1. 基本赋值运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
= | 赋值 | a = b |
2. 复合赋值运算符
| 运算符 | 等价形式 | 示例 |
|---|---|---|
+= | a = a + b | a += b |
-= | a = a - b | a -= b |
*= | a = a * b | a *= b |
/= | a = a b | a = b |
%= | a = a % b | a %= b |
3. 示例代码
#include <stdio.h>
int main() {
int a = 5;
a += 3; // 等价于 a = a + 3;
printf("a = %d\n", a); // 8
a *= 2; // 等价于 a = a * 2;
printf("a = %d\n", a); // 16
return 0;
}
五、关系运算符
用于比较两个值的大小,结果为布尔值(true
或false
)。
1. 常用关系运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
== | 等于 | a == b |
!= | 不等于 | a != b |
> | 大于 | a > b |
< | 小于 | a < b |
>= | 大于等于 | a >= b |
<= | 小于等于 | a <= b |
2. 示例代码
#include <stdio.h>
int main() {
int a = 5, b = 3;
printf("a == b: %d\n", a == b); // 0(假)
printf("a != b: %d\n", a != b); // 1(真)
printf("a > b: %d\n", a > b); // 1
printf("a < b: %d\n", a < b); // 0
return 0;
}
六、逻辑运算符
用于连接多个条件表达式,结果为布尔值。
1. 常用逻辑运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
&& | 逻辑与 | a > 0 && b > 0 |
|| | 逻辑或 | a > 0 || b > 0 |
! | 逻辑非 | !(a > 0) |
2. 示例代码
#include <stdio.h>
int main() {
int a = 5, b = -3;
printf("a > 0 && b > 0: %d\n", a > 0 && b > 0); // 0
printf("a > 0 || b > 0: %d\n", a > 0 || b > 0); // 1
printf("!(a > 0): %d\n", !(a > 0)); // 0
return 0;
}
七、自增自减运算符
用于对变量进行增减1的操作。
1. 运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
++ | 自增1 | ++a |
-- | 自减1 | --a |
2. 前缀和后缀
前缀运算符: ++a
,先自增,再使用。后缀运算符: a++
,先使用,再自增。
3. 示例代码
#include <stdio.h>
int main() {
int a = 5;
printf("a = %d\n", a); // 5
printf("++a = %d\n", ++a); // 6
printf("a++ = %d\n", a++); // 6
printf("a = %d\n", a); // 7
return 0;
}
八、条件运算符(三目运算符)
根据条件表达式的结果,返回不同的值。
1. 语法格式
条件表达式 ? 表达式1 : 表达式2
如果条件表达式为真,返回表达式1的值; 如果条件表达式为假,返回表达式2的值。
2. 示例代码
#include <stdio.h>
int main() {
int a = 5, b = 3;
int max = (a > b) ? a : b;
printf("max = %d\n", max); // 5
return 0;
}
九、运算符优先级
当一个表达式中包含多个运算符时,运算符的优先级决定了运算的顺序。
1. 常见运算符优先级表(从高到低)
()
小括号++
、--
(前缀)*
、/
、%+
、->
、>=
、<
、<===
、!=&&||?:
条件运算符=
、+=
、-=
等赋值运算符
2. 示例代码
#include <stdio.h>
int main() {
int a = 2, b = 3, c = 4;
int result = a + b * c; // 2 + (3 * 4) = 14
printf("result = %d\n", result);
return 0;
}
说明:
在 a + b * c
中,乘法*
的优先级高于加法+
,所以先计算b * c
。
十、表达式示例与练习
1. 示例代码
#include <stdio.h>
int main() {
int a = 5, b = 10, c = 15;
int result = a + b > c ? a : b;
printf("result = %d\n", result); // 10
return 0;
}
2. 练习题
题目1: 计算以下表达式的结果,并解释运算过程。
int x = 5;
int y = x++ + ++x;
题目2: 判断以下表达式的值,并说明原因。
int a = 3, b = 4, c = 5;
int result = (a > b) && (b < c);
十一、小结
本节我们学习了C语言中的运算符和表达式,包括算术运算符、赋值运算符、关系运算符、逻辑运算符、自增自减运算符和条件运算符等。理解运算符的作用和优先级,对于编写正确的程序至关重要。
十二、实践与思考
实践:
编写一个程序,输入两个整数,计算并输出它们的和、差、积、商和余数。 编写一个程序,输入一个整数,判断它是奇数还是偶数。
思考:
如何使用逻辑运算符简化多条件判断? 在什么情况下需要注意运算符的优先级,如何避免歧义?
十三、加入我们的知识星球!
想要获取更多的学习资源和指导吗?加入我们的 「一如老师的编程与设计星球」,你将获得:
独家学习资料:丰富的教程、源码、笔记等资源。 答疑解惑:一对一的学习问题解答,助你突破难点。 项目实战:参与真实项目,提升实战能力,积累经验。 职业指导:提供就业、面试等方面的建议,助你迈向理想职业。
扫码立即加入,和更多志同道合的伙伴一起成长!

十四、加入我们的学习群!
为了更好地交流和学习,欢迎大家加入 「一如老师编程设计交流中心」,与更多的朋友一起进步!
QQ群号:965696190 微信群:扫描下方二维码加入 
十五、期待你的反馈!
如果你在学习过程中遇到任何问题,或者有好的建议和想法,欢迎在下方留言。我会尽快回复你的疑问。

十六、下期预告
下一期,我们将分享WPS技巧(二):轻松制作高质量PPT,教你如何用WPS制作出专业且美观的幻灯片,提升你的办公技能,敬请期待!
版权声明
本文为原创内容,转载请注明出处。
喜欢这篇文章吗?
如果觉得本篇内容对你有帮助,请点击右下角的“赞”和“在看”,并分享给更多的朋友!你的支持是我持续创作的动力!❤️





