暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

C语言基础教程(二):运算符与表达式

一如老师 2024-11-04
154

C语言基础教程(二):运算符与表达式


前言

亲爱的读者朋友们,大家好!👋

欢迎回到一如老师的公众号。今天是我们的第八天更新,我们将继续C语言基础教程系列。本期内容,我们将深入学习运算符与表达式,这是编程中非常重要的概念。掌握运算符的使用和表达式的构建,能够帮助我们编写更加灵活、高效的代码。

无论你是编程初学者,还是希望夯实基础的开发者,这篇文章都将对你有所帮助。准备好了吗?让我们开始吧!🚀


一、什么是运算符和表达式?

  • 运算符(Operator):用于执行特定操作的符号,如加号+
    、减号-
    等。
  • 操作数(Operand):运算符作用的对象,可以是常量、变量、函数返回值等。
  • 表达式(Expression):由运算符和操作数组合而成的式子,能够计算出一个值。

示例:

int result = a + b * c;

在这个表达式中,+
*
是运算符,a
b
c
是操作数。


二、C语言中的运算符分类

C语言中,运算符按照功能和操作数的个数,可以分为以下几类:

  1. 算术运算符
  2. 赋值运算符
  3. 关系运算符
  4. 逻辑运算符
  5. 位运算符
  6. 条件运算符(三目运算符)
  7. 自增自减运算符
  8. 逗号运算符
  9. 指针运算符
  10. 成员选择运算符

三、算术运算符

用于进行数学计算,支持整数和浮点数。

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. 常见运算符优先级表(从高到低)

  1. ()
    小括号
  2. ++
    --
    (前缀)
  3. *
    /
    %
  4. +
    -
  5. >
    >=
    <
    <=
  6. ==
    !=
  7. &&
  8. ||
  9. ?:
    条件运算符
  10. =
    +=
    -=
    等赋值运算符

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制作出专业且美观的幻灯片,提升你的办公技能,敬请期待!


版权声明

本文为原创内容,转载请注明出处。


喜欢这篇文章吗?

如果觉得本篇内容对你有帮助,请点击右下角的“赞”和“在看”,并分享给更多的朋友!你的支持是我持续创作的动力!❤️


文章转载自一如老师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论