视频加载失败

C 语言算术运算符

1236 字
6 分钟
C 语言算术运算符

【一】表达式#

  • 定义:所谓表达式是指由运算符、运算量和标点符号组成的有效序列,是用来说明一个计算过程。
  • 表达式语句:表达式可以独立形成语句,该语句称为表达式语句。
  • 一般形式: <表达式> ; (注意末尾必须有分号)

【二】算术运算符#

运算符功能说明举例
+加,一目取正(一元正号)a+b, +a
-减,一目取负(一元负号)a-b, -a
*乘法a*b
/除法a/b
%取模或求余a%b
++增1(自增)a++, ++b
--减1(自减) (被UI遮挡)a--, --b

这张图片紧接着上一节的算术运算符,专门针对最容易出错的除法运算符 / 和取模运算符 % 进行了详细区分。这是C语言初学者最容易踩坑的地方,也是考试必考的核心点。

按照惯例,我为你整理了结构化笔记,并补充了极其重要的实战避坑指南:

【三】整数除法和实数除法#

C语言的除法运算符分为整数除法和实数除法。

【1】整数除法#

  • 求整 /:得到两个整数相除的整数部分。
  • 求余 %:得到两个整数相除的余数部分。
  • 举例:
    • 1/2 的结果为 0 (小数部分被直接丢弃)
    • 1%2 的结果为 1 (1除以2,商0余1)

【2】实数除法#

  • 除法 /:得到两个实数相除的结果为一个实数。
  • 举例:
    • 1.0/2 的结果为 0.5

这张图片是一个具体的实战练习题(练习9),通过实际代码运行来验证上一节关于整数除法和实数除法的理论知识。

按照惯例,我为你整理了结构化笔记,并针对代码中的细节和考点进行深度解析:

【四】练习#

【1】除法运算符#

  • 题目:计算 1/2、1.0/2、1%2 的结果分别是多少?

  • 源代码:

    #include <stdio.h>
    int main(int argc, char const *argv[])
    {
    printf("1/2 =%d\n",1/2);
    printf("1.0/2=%f\n",1.0/2);
    printf("1%%2 =%d\n",1%2);
    return 0;
    }
  • 运行结果:

    1/2=0
    1%2=1
    1.0/2=0.500000

这张图片详细讲解了C语言中极其重要且容易出错的自增(++)与自减(--)运算符。图片通过定义和七行代码示例,精准地展示了“前缀(先算后用)”和“后缀(先用后算)”的区别。

按照惯例,我为你整理了结构化笔记,并对代码示例进行了深度拆解,最后补充了考试必考的避坑指南:

【2】自增自减运算符#

(1)自增运算符#

  • i++:表示 i 的值先参与运算,最后再自增1(后缀)。
  • ++i:表示 i 的值先自增1,之后再参与运算(前缀)。

(2)自减运算符#

  • i--:表示 i 的值先参与运算,最后再自减1(后缀)。
  • --i:表示 i 的值先自减1,之后再参与运算(前缀)。

假设每一行代码都从头执行,即初始值始终是 x=5, y=9。如果连续执行而不重置变量,结果会不同。

我们按照图片给出的初始值 x=5, y=9,逐行拆解:

  1. z = ++x;
    • 前缀:x先加1变成6,然后把6赋给z。
    • 结果:z=6,x=6
  2. z = x++;
    • 后缀:先把x当前值5赋给z,然后x再加1变成6。
    • 结果:z=5,x=6
  3. z = --x;
    • 前缀:x先减1变成4,然后把4赋给z。
    • 结果:z=4,x=4
  4. z = x--;
    • 后缀:先把x当前值5赋给z,然后x再减1变成4。
    • 结果:z=5,x=4
  5. z = ++x+y++;
    • 前缀+后缀混合:++x使x变成6(取6参与运算),y++取y当前值9参与运算(然后y变成10)。z = 6 + 9 = 15。
    • 结果:z=15,x=6,y=10
  6. z = --x+y++;
    • --x使x变成4(取4参与运算),y++取y当前值9参与运算(然后y变成10)。z = 4 + 9 = 13。
    • 结果:z=13,x=4,y=10
  7. z = ++x+y--;
    • ++x使x变成6(取6参与运算),y--取y当前值9参与运算(然后y变成8)。z = 6 + 9 = 15。
    • 结果:z=15,x=6,y=8

【3】算术运算符#

  • 源代码(基于输出结果还原,利用重置变量来独立验证每一行的逻辑):
    #include <stdio.h>
    int main() {
    int x, y, z;
    // 第一行
    x = 5; y = 9; z = ++x; // 前缀:x先加1变6,z=6
    printf("z=%d, x=%d\n", z, x);
    // 第二行
    x = 5; y = 9; z = x++; // 后缀:z=5,x再加1变6
    printf("z=%d, x=%d\n", z, x);
    // 第三行
    x = 5; y = 9; z = --x; // 前缀:x先减1变4,z=4
    printf("z=%d, x=%d\n", z, x);
    // 第四行
    x = 5; y = 9; z = x--; // 后缀:z=5,x再减1变4
    printf("z=%d, x=%d\n", z, x);
    // 第五行
    x = 5; y = 9; z = ++x + y++; // ++x为6,y++取9,z=15;运算后x=6, y=10
    printf("z=%d, x=%d, y=%d\n", z, x, y);
    // 第六行
    x = 5; y = 9; z = --x + y++; // --x为4,y++取9,z=13;运算后x=4, y=10
    printf("z=%d, x=%d, y=%d\n", z, x, y);
    // 第七行
    x = 5; y = 9; z = ++x + y--; // ++x为6,y--取9,z=15;运算后x=6, y=8
    printf("z=%d, x=%d, y=%d\n", z, x, y);
    return 0;
    }

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
C 语言算术运算符
https://firefly.cuteleaf.cn/posts/language/c/20c语言基础/60算数运算符/
作者
Dream
发布于
2026-09-26
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Dream
Hello, I'm Dream.
公告
欢迎来到我的博客!爱学习爱进步。
分类
标签
最新动态
站点统计
文章
11
分类
1
标签
26
总字数
23,674
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录