- C++
C++运算符优先级
- @ 2026-9-6 10:09:01
C++运算符优先级(GESP必考版|0基础通俗讲解)
优先级数字越小,优先级越高,先算;同一行优先级相同,看结合方向。 ✅记忆口诀:括号最高,单目其次,乘除模,加减,移位,比较,位运算,逻辑,三目,赋值,逗号最低
完整表格(重点标出GESP高频考点)
| 优先级 | 运算符 | 名称 | 结合方向 | 考试重点说明 |
|---|---|---|---|---|
| 1(最高) | () [] -> . |
括号、数组、指针成员 | 从左向右 | 括号永远最先算 |
| 2 | ! ++ -- + - * & |
逻辑非、自增自减、正负号、解引用、取地址 | 从右向左 | 单目运算符!!a、i++,注意后置++的坑 |
| 3 | * / % |
乘法、除法、取模 | 从左向右 | 先乘除取模,后加减 |
| 4 | + - |
加法、减法 | 普通加减 | |
| 5 | << >> |
左移、右移 | 移位运算(GESP3/4级) | |
| 6 | < <= > >= |
大小比较 | 得到结果是1(true)/0(false) | |
| 7 | == != |
等于、不等于 | 不要和赋值=混淆! |
|
| 8 | & |
按位与 | 位运算 | |
| 9 | ^ |
按位异或 | ||
| 10 | | |
按位或 | ||
| 11 | && |
逻辑与(并且) | 短路特性:前面假,后面不执行 | |
| 12 | || |
逻辑或(或者) | 短路特性:前面真,后面不执行 | |
| 13 | ?: |
三目运算符 | 从右向左 | 唯一一个三目运算符 |
| 14 | = += -= *= /= %= |
赋值、复合赋值 | 赋值优先级很低! 例 a = b += 5 |
|
| 15(最低) | , |
逗号运算符 | 从左向右 | 逗号最后表达式的值作为整体结果 |
📌超级重要易错点(GESP选择题高频坑)
易错1:= 和 ==优先级天差地别
==优先级远高于=
int a,b;
a = 3 > 2; //先算3>2得到1,再把1赋值给a
易错2:逻辑运算符短路(必考)
&&:左边为假,右边代码不运行
||:左边为真,右边代码不运行
int i=1;
0 && (i++); //左边是0假,i++不会执行,i仍然=1
1 || (i++); //左边是1真,i++不会执行
易错3:自增++(后置++坑,第14题考点)
后置i++:先使用原值,语句结束后再加1
前置++i:先+1,再使用新值
单目运算符优先级很高,但是后置++有特殊时序
易错4:逗号运算符优先级所有里面最低
int a=(1,2,3);
//逗号从左往右执行,整体结果等于最后一项3,a=3
易错5:算术 > 比较 > 逻辑
执行顺序:乘除加减 → > < == → && ||
示例:3+2>4 && 5-1<7
1.先算加减:5>4 && 4<7
2.再比较:1 && 1
3.最后逻辑运算,结果=1
📝极简背诵顺序(只背高频,应付GESP1~4级足够)
括号 > ! ++ -- > * / % > + - > < > >= <= > == != > && > || > = += > ,
✍小练习题(马上检验掌握程度)
2+3*5先算?答案:3*56>2*3,先算?答案:2*3a=5>2 && 3<1,运算顺序?
先比较5>2、3<1,再&&,最后赋值给a
0 条评论
目前还没有评论...