当前位置:首页C++程序设计 > 正文

c++运算符优先级

作者:野牛程序员:2026-01-30 09:02:38C++程序设计阅读 1986
c++运算符优先级

以下内容对 C++ 运算符优先级 进行系统整理,适合学习、教学、考试与查阅使用,按照 优先级从高到低 排列,并标注结合性,避免混淆与误判。


一、C++ 运算符优先级总表(从高到低)

优先级运算符含义结合性
1::作用域解析从左到右
2() [] . -> ++ --函数调用、数组、成员访问、自增自减从左到右
3++ -- + - ! ~ * & sizeof单目运算符从右到左
4* / %乘、除、取余从左到右
5+ -加、减从左到右
6<< >>位移从左到右
7< <= > >=关系比较从左到右
8== !=相等判断从左到右
9&按位与从左到右
10^按位异或从左到右
11``按位或
12&&逻辑与从左到右
13`
`
14?:条件运算符从右到左
15= += -= *= /= %=赋值从右到左
16,逗号运算符从左到右

二、必须牢记的核心规律

1️⃣ 算术 > 关系 > 逻辑 > 赋值

a + b > c && d == e

实际计算顺序:

  1. a + b

  2. >

  3. ==

  4. &&


2️⃣ 单目运算符优先级极高

int x = 5;
cout << -x * 2;

等价于:

cout << ((-x) * 2);

3️⃣ 赋值运算符是 从右向左

a = b = c = 10;

等价于:

a = (b = (c = 10));

4️⃣ 逻辑运算优先级顺序

!  >  &&  >  ||

示例:

if (!a || b && c)

等价于:

if ( (!a) || (b && c) )

三、初学者最容易出错的情况

❌ 错误理解 1:== 高于 =

if (a = b == c)   // 合法,但极易出错

实际顺序:

b == c  →  a = (结果)

❌ 错误理解 2:&& 高于 ||

if (a || b && c)

真实顺序:

if (a || (b && c))

❌ 错误理解 3:忽略括号最安全原则

a + b << c

等价于:

(a + b) << c

四、强烈推荐的编程习惯

逻辑判断一律加括号
不依赖“记忆型优先级”写代码
考试与竞赛中明确写出计算顺序

示例(推荐写法):

if ( (a > b) && (c < d) )

五、速记口诀(教学常用)

单目最先算,乘除再加减
位移关系等,逻辑赋值后
括号能救命,安全写在前


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • c++运算符优先级
  • 相关推荐

    最新推荐

    热门点击