10.2:移位操作符(移动的是二进制位):
>>(右移) <<(左移)
10.3:位操作符(操作的额也是二进制位):
&(按位与) ^(按位异或) |(按位或)
10.4:赋值操作符:
= :赋值
+= :加等于
-= :减等于
*= :乘等于
/= :除等于
&= :按位与等
^= :按位异或等
|= :按位或等
>>= :右移等
<<= :左移等
10.5:单目操作符:
!:逻辑反操作(真变假,假变真)
- :负值(负变正,正变负)
+ :正值
& :取地址(跟指针有关)
sizeof:操作数的类型长度(以字节位单位),是一个操作符,不是函数
1.sizeof(变量名),这时括号可去掉(说明sizeof不是函数)
2.sizeof(变量的字符类型)
~ :对一个数的二进制二进制按位取反
-- :前置、后置++
++ :前置、后置++
* :简介访问操作符(解引用操作符,跟指针有关)
(类型):强制类型转换
* ! - 逻辑反操作:
//! - 逻辑反操作 #include <stdio.h> //C语言中表示真假: //0 - 假 //非0 - 真(只要不是0就是真) int main() { int a = 5; if (a)//a = 5,非0,为真,进入if { printf("hehe\n"); } if (!a)//a本为真,逻辑反操作,变为假,无法进入if { //真变假:0 假变真:1 printf("haha\n"); } return 0; }
*++ - 前置、后置++:
//++ #include <stdio.h> int main() { int a = 1; int c = a++; //后置++,先使用,再++ int b = ++a; //前置++,先++,后使用 printf("%d %d %d\n", c,b,a); return 0; }
*-- . 前置、后置--:
//-- #include <stdio.h> int main() { int a = 3; int c = a--;//后置--:先使用,再-- int b = --a;//前置--:先--,再使用 printf("%d %d %d\n", c, b, a); return 0; }1. //-
*(类型)- 强制类型转换:
//强制类型转换 #include <stdio.h> int main() { int a = (int)3.14;//(类型):强制类型转换(不好四舍五入) //这里如果不使用强制类型转换能打印但会警告: //“初始化”: 从“double”转换到“int”,可能丢失数据 printf("%d\n",a); return 0; }
10.6:关系操作符:
>
>=
<
<=
!=:用于测试“不相等”
==:用于测试“相等”
10.7:逻辑操作符:
&&:逻辑与
||:逻辑或
10.8:条件操作符:
exp1 ? exp2 : exp3
10.9:逗号表达式:
exp1, exp2, exp3, ...expN
10.10:下标引用、函数调用和结构成员:
[] () . ->