ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

C语言中关于操作符的理解

2026/9/21 6:21:33 拓冰建站 浏览量
C语言中关于操作符的理解

本篇文章只会列出大家在生活中经常使用的操作符

 算术操作符

在算数操作符中常用的有,+,-,*,/,% ,我们重点讲一讲 / (除) 和 % (模)

 " / "运算

#include <stdio.h>int main() {int a=5/2;float b=5/2;float c=5.0/2;float d=5/2.0;float e=5.0/2.0;printf("%d\n",a);printf("%f\n",b);printf("%f\n",c);printf("%f\n",d);printf("%f\n",e);return 0;
}

 在这当中,我们可以看到输出a,b的时候,无论是用整型还是浮点型,输出的都是2,因为c语言在运算中,如果除号两端都是整数,则默认是整数除法,这个时候无论是以什么形式输出都是按照整数的显示来进行运算的,我们的解决方案可以是像c,d,e一样在除号的前后把任意一个或全部的数字变成小数,这样在运算的时候就会以浮点型来运算了。

 "%"运算

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

 在模运算中,我们可以看见,模运算求的是两个数相除后得到的余数,看似很简单,但在一些c语言问题当中有着大用处,例如要求每一位数字之和,我们就可以利用模运算来求出每一位的数字是多少,然后再进行除运算,以达到解决问题的方法。


位操作符

在位操作符中常用的有,&(与),|(或)

现在还没有合适的例子,等以后找到例子再来补充完整


单目操作符

单目操作符中常用的有,!,+,-,--,++,sizeof

单目操作符就是只有一个操作数的操作符

例如a++;

在这里++只有前面有一个操作数,使用++就是单目操作符

同理,双目操作符就是左右都有操作数的操作符

例如a+b;

+的左右都有操作数,使用+就是双目操作符

"!"运算

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

 在!运算中,0表示假,非0表示真,c语言中判断时,把真值默认为1,所以在这个程序中,输出的结果是0和1。

"-" ,"+" 运算

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

 通过上面的程序我们可以看出,跟a+b,a-b不同,这里的作用并不是相加或相减,在单目操作符里面"-","+"就是表示正负的意思

 "++","--"运算

#include <stdio.h>
int main() {int a=6;int b=++a;          //先++,后赋值int c=a++;          //先赋值,后++printf("a=%d\n",a);printf("b=%d\n",b);printf("c=%d\n",c);return 0;
}

 在这个程序中,我们可以看见a,b,c都分别变成了8,7,7

a=6a=6,b,c
b=6+1(直接加)a=7,b=7
c=7+1(这里的+1是运行完之后再+1,所以在这里c还是7)a=7,b=7c=7
输出时,由于c运算完了,所以这个时候c后面的++开始执行,执行后a=8

所以最后运行出来的结果是这个样子的 

"sizeof"运算

sizeof的理解icon-default.png?t=N7T8https://blog.csdn.net/lzcandhyandcg/article/details/134960729?spm=1001.2014.3001.5502


逻辑操作符

逻辑操作符中常用的有:"&&","||"

 "&&"运算

#include <stdio.h>
int main()
{int a, b=0;for (a = 1; a <= 100; a++){if(a%5==0 && a%3==0){printf("%d\t",a);b++;if(b%5==0)printf("\n");}}return 0;
}

 "&&"可以理解为并且的意思,在这个程序当中既能被5整除,也能被3整除的数就输出

 "||"运算

#include <stdio.h>
int main()
{int a, b=0;for (a = 1; a <= 100; a++){if(a%5==0 || a%11==0){printf("%d\t",a);b++;if(b%5==0)                //如果b%5等于0,则换行printf("\n");         //简单来说,就是每行只能有5个输出}}return 0;
}

"||"可以理解为或者的意思,在这个程序当中既能被5整除又能被11整除的数就输出 

 条件操作符(三目操作符)

条件操作符有:"? :"

这是一个条件操作符,具体用法如下

exp1 ? exp2 : exp3

如果exp1成立,则执行exp2

如果exp1不成立,则执行exp3

#include <stdio.h>
int main()
{int a=11;int b=3;int max=0;int min=0;max=a>b ? a : b;min=a>b ? b : a;printf("%d\n",max);printf("%d\n",min);return 0;
}

 在这个程序中,我们可以很清晰的看见条件操作符1的用法,跟if语句差不多,但比if语句更加简洁