操作符的操作数,如:函数arr(2,3)操作符是(),操作数是arr、2、3
1、算术操作符:+、-、*、/、%(取余)
/:当/两边的数都是整型的时候所得的数也为整型,如果有小数则省略,当两边有一个为浮点型的时候,则计算结果为浮点型。
%:取余数,%两端只能是整型,不能是其它类型。
2、移位操作符:>>、<<
32>>(<<)2:右移操作符(把32在二进制下,右移(左移)2位)
3、位操作符:&、^、|
3^2(异或:二进制下相同为0,不同为1)
&(按位与:二进制下相同位上都为1才为1)
|(按位或:二进制下相同位上都为0才为0)
4、赋值操作符:=、+=、-=、*=、/=、^=、|=、>>=、<<=、
把后面的赋值给前面(把操作符代表的计算值赋值给前面)
类似于a+=2相当于a=a+2,相应的其它赋值操作符转化格式也是一样的例如:a*=2相当于a=a*2。int a = 0;是初始化, a = 10;才是赋值。
5、单目操作符:
+、-就是正常的正负号的意思。
!flag:把flag取逻辑反(真/假)。在C语言中规定0为假,非0为真。故在上述代码中!flag为1。
前三行代码在本质上是相同的,a可以去括号,但int不能去括号。当打印数组的占用空间时,大小等于元素数×每个元素所占的空间大小,数组中元素大小也能打印。
代码中后置++部分等同于:int b = a;a = a+1;
前置++部分等同于:a = a+1;int b = a;
由此可见--也是和++一样的道理。
编译器默认3.14为double类型,在上述代码中我强制使3.14变成int型,并赋值给a,最终使得a只保留了整数部分。
6、关系操作符
用于判断前后关系
7、逻辑操作符
&&:逻辑与(并且)、||:逻辑或(或者)。
判断逻辑是否满足
8、条件操作符(三字目操作符)
比较处代码的写法:int max = a >= b ? a : b;(int max = exp1 ? exp2 : exp3;)含义是:满足exp1,则输出exp2的值,否则输出exp3的值。
9、逗号表达式
格式:exp1,exp2,exp3,exp4,exp5,……,最终把最后一个表达式的值作为输出,其它表达式也生效但不作为本句的输出使用。