总的先概述一下操作符,操作符有移位操作符、算数操作符、位操作符等其他特殊的操作符。操作符具有优先级和结核性。本文章重点唠一唠算数操作符,逻辑操作符。
算数操作符:
首先来讲最简单的算数操作符,算数操作符有+ - * / %即加减乘除、取余运算符(%)用来求余数的操作符,例如5%2的结果为余数1。自增自减运算符(++ --)。其中自增自减运算符又分为前置自减和后置自增自减运算符。
前置自增自减运算符,先自增自减,再赋值。
后置自增自减运算符,先赋值,再进行自增自减。
#include<stdio.h>
int main()
{
int a=2;
int b=a++;
int c=++a;
printf("%d %d %d",a,b,c);
return 0;
}
运行的结果为4 2 4.原因是b=a++,此时a为2,先赋值给b,从而b为2,随后a自身再自增,从 而a变为了3。c=++a,为后置自增,a先自增为4,再将4赋值给c,从而得到最后的结果为 a=4,b=2,c=4。此外从这段代码中也可以看出自增自减操作符的优先级高于赋值操作符。
+ - * / 算数操作符的操作数可以是整数也可以是浮点数,当操作数中一旦出现浮点数的时候,最后的结果则以小数来表示。其中取余操作符%的操作数只能是整数,不可以是浮点数。(小小的补充到,不同类型的数据,如浮点数和整数的四则运算可以会导致精度缺失)。
逻辑操作符:
常见的逻辑操作符有与&&、或||、非!。
&&逻辑与,当连接的所有表达式为真的时候,结果为真,只要有一个为假则为假。当连接多个表达式的时候,从左向右运算,如果前面的结果为假则不再对后面的表达式进行运算。
#include<stdio.h>
int main(void)
{
int a = 3;
int b = -3;
int c = 5;
if (c + b && c / a && a + b&&c+a&&++c)
printf("hehe");
else
printf("haha");
printf("\n%d",c);
return 0;
}
因为a+b的结果为0,即为假,所以++c不再计算,从而c的数字不变。 ||以此类推。而!为非,例如a!=1,则用来判断a是不是不等于1。