专题一:运算符
1.按优先级从高到低排列:
初等运算:()、[]、.、->
单目运算:!、~、++、--、类型转换、&(取地址)、*(解引用)、sizeof
算数运算:*、/、%高于+、-
移位运算:>>、<<
关系运算:>、>=、<、<=高于==、!=
位与运算:&
异或运算:^
位或运算:|
逻辑运算:&&高于|| (短路运算符优先级高于其他运算符)
条件运算:?:
赋值运算:=、复合赋值
逗号运算:,
注意:多数运算符具有左结合性,单目/三目/赋值运算符具有右结合性。
2.短路运算符
规定:逻辑运算符&& 的优先权要高于逻辑运算符 ||
c优化:在“exp1 && exp2” 中如果exp1为false,则不再计算exp2的值
c优化:在“exp1 || exp2” 中如果exp1为true,则不再计算exp2的值
3.++/后++、--/后—
前++和前--:先加/减后用
后++和后--:先用后加/减
注意:c语言中前++和前--不能做级联式应用,但C++中可以这样用。后++和后--在c和c++中都不能做级联式应用