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级足够)

括号 > ! ++ -- > * / % > + - > < > >= <= > == != > && > || > = += > ,

✍小练习题(马上检验掌握程度)

  1. 2+3*5 先算?答案:3*5
  2. 6>2*3,先算?答案:2*3
  3. a=5>2 && 3<1,运算顺序?

先比较5>2、3<1,再&&,最后赋值给a

0 条评论

目前还没有评论...