目录
(一)算术操作符
算术操作符包括+ 、-、*、/、%(取余),其中/除法操作符与%取余操作符要特别注意。除法操作符当两个数均为整型时,结果必为整型(相当于商而舍弃余数)。取余操作符的两个操作数必须为整型,表示一个数对另一个数作商的余数,常用来获取一个数的最高位。
(二)移位操作符
移位操作符包括,<<左移操作符和>>右移操作符。顾名思义,移位操作符表示的对一个数的二进制位整体进行移动,左移数翻倍,低位补零;右移减倍,高位补零。如:
int b = 2;
b <<= 2;//表示将b左移两位再赋值给b,那么b的值加倍两次变为8
//int类型占四个字节,也可将b转换成32位二进制数再进行移位操作
(三)位操作符
位操作符包括,&按位与,|按位或,^按位异或。同样的道理,按位操作的意思是两个数的二进制位进行运算的到结果。其中异或表示,两个二进制数相同为0,不同为1。如:
int a = 6;
a &= 2;//表示a与2按位与再赋值给a,a=2
(四)赋值操作符
赋值操作符及复合赋值操作符,=,+=,&=,>>=等,复合赋值操作符表示先进行运算再赋值,如b+=2;表示b=b+2。
(五)单目操作符
单目操作符,即只需要一个操作数便可进行操作的操作符。如!a(逻辑反)真假逻辑,常用在表示反的条件语句中if(!a);~按位取反,0变1,1变0;++,--操作符,前置与后置,前置表示先加减后使用。如:
int i=0,a=2;
a=++i;//先加一,则a=1
a=i++;//先赋值再加一,a=0
(六)关系操作符
关系操作符包括,>,<,!=,==等。
(七)逻辑操作符
逻辑操作符,&&逻辑与,||逻辑或,得到的是真假逻辑,if(a&&b)。
(八)条件操作符
条件操作符是一种三目操作符,即需要三个操作数。表达式为exp1?exp2:exp3,exp1成立,exp2计算并且为结果;exp1不成立,则exp3计算并且为结果(表达式)。如:
int max = 0,a=2,b=3;
max = a > b ? a : b;//找出a,b中的最大值
(九)逗号表达式
逗号表达式,用逗号隔开的一段表达式,从左向右以次计算,整个表达式得结果为最后一个表达式的结果。如:
int a=5;
int b = 2;
int c = 1;
int d = 0;
d = (a = b + c, b = a - 2, c = b + 3);//逗号表达式
printf("%d\t%d\t%d\t%d\n", a, b, c, d);//3 1 4 4
(十)其他操作符
下标引用[]数组、函数调用( )、结构体访问 . 点操作符或指针结构体访问->箭头操作符。