第一级:结合方向自左向右,
()
[] :只用于数组,作用:1.定义数组,先定义后使用;2.通过数组下标访问数组元素。int a=10;int arr[10];
.
:
自定义数据类型 ,通过结构体的变量访问内部成员;
{
};
-> :结构体的指针变量,访问它的成员使用;
第二级:结合方向自右向左,单目运算符
!:逻辑非运算符
~:按位取反;二进制的每一位都取反
++:自增
--:自减
int a=10;
int b=--a;//前置--;先减后赋值;a=9,b=9;
int b=a--;//后置--;先赋值后减;a=10,b=9;
(类型):(强制)类型转换运算符
*:指针
&:取地址
sizeof:长度运算符
占用的字节数
第三级:自左向右 双目运算符
* :乘法运算符
/ :除法运算符
整除 是整数/整数,结果为整数 10/4=2;小数点后面的都去掉,成为去尾,正负数皆可
%:求余运算符
求余就是求余数 只能用于整数
有个规律,余数的符号和被除数的符号一致,如果记不住这个规律,也可以直接算
第四级:加(+)减(-)运算符
第五级:移位运算符,双目,自左向右,只用于整数,不能用于浮点数
<< :左移运算符
>> :右移运算符
可以类比十进制的左右移
下面的6~12 都是双目运算符,自左向右结合
6.关系运算符:<(小于)
< =(小于等于)
7.==(等于) !=(不等于)
8.按位与运算符:&
都为1,才为1;
9.按位异或运算符:^
不一样的才为1(相同为0,不同为1)
10.按位 或:|
有一个为1,就为1
11.逻辑与:&&
表达式1&&表达式2 都为真,才为真
特别注意!若表达式1为假,表达式2不会被计算
12.逻辑或: ||
表达式1 || 表达式2
有一个为真,就为真,特别注意!若表达式1为真,表达式2不会被计算
13.条件运算符
? :
唯一的一个三目运算符,结合性自右向左
14。赋值运算符:= ,+= ,-=,*=,/=
,%= ,>>= ,<<= ,&=,^= ,!=
15.逗号运算符:也叫顺序求值运算符,自左向右结合
表达式1,表达式2,……,表达式n ;
这个表达式的结果应该是表达式n
1,2,3,4,7=7;
逗号表达式:从左往右依次计算,以最后一个表达式(表达式n)的结果为最终结果。
大致归纳优先级的顺序:
初等运算符——单目运算符——算数运算符——关系运算符——逻辑运算符——条件运算符——赋值运算符——逗号运算符
记不住的话,可以加上括号(),它的优先级是最高的。
特别注意【】的优先级比 * 高。