本篇文章只会列出大家在生活中经常使用的操作符
算术操作符
在算数操作符中常用的有,+,-,*,/,% ,我们重点讲一讲 / (除) 和 % (模)
" / "运算
#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=6 | a=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的理解https://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语句更加简洁