C语言中算数运算符主要包括:加法+、减法-、乘法*、除法/、求模%、自增++、自减--。


自增++和自减--,是单目运算符,因为它们只需要一个操作数,加法+、减法-、乘法*、除法/、求模%,是双目运算符


自增++自减--又称为“增量运算符”(increment operator)完成简单的任务,如++,即将其操作数的值增加1。这个运算符以两种方式出现。在第一种方式中,++出现在它作用的变量的前面,这是前缀(prefix)模式;在第二种方式中,++出现在它作用的变量的后面,这是后缀(postfix)模式。这两种模式的区别在于值的增加这一动作发生的准确时间不同。对于前缀运算符,先执行自增或自减运算,再计算表达式的值;而后缀运算符,则先计算表达式的值,再执行自增或自减运算。自减--也是同样的道理。


我们举个例子来说明:

#include<stdio.h>
int main()
{
    int a,b;
    a=b=5;
    printf("%d      %d\n",a--,--b);
    printf("%d      %d\n",a--,--b);
    printf("%d      %d\n",a--,--b);
    printf("%d      %d\n",a--,--b);
    printf("%d      %d\n",a--,--b);
    return 0;
}


运行结果如下:

5      4
4      3
3      2
2      1
1      0


这个程序5次将变量a和b减1,您可以通过这个结果来理解前缀和后缀的区别。
需要提醒一下的是,++与--是单目运算符,即一个操作对象,而这个操作对象只能为变量,因为,常量不可以被赋值。


运算符符号操作用例结果
加法+使它两侧的值加到一起1+23
减法-从它前面的数减去后面的数5-32
乘法*将它前面的数乘以后面的数2*36
除法/用它左边的值除以右边的值8/32(整数的除法会丢掉小数部分)
取模%求用它左边的值除以右边的数后的余数5%32(%运算符两侧的操作数必须为整数)


看一个例子:

#include<stdio.h>
int main()
{
    int a=20;
    int b=5;
    int c=6;
    printf("a = %d b = %d c = %d\n",a,b,c);
    printf("a + b = %d\n",a+b);
    printf("a - c = %d\n",a-c);
    printf("a * b = %d\n",a*b);
    printf("a / c = %d\n",a/c);
    printf("a %% c = %d\n",a%c);/*两个%才会输出一个%*/
    return 0;
}


运行结果为:

a = 20 b = 5 c = 6
a + b = 25
a - c = 14
a * b = 100
a / c = 3
a % c = 2


大家可以亲自实验。


点赞(2)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)