1. 主页
  2. 文档
  3. Level5题解(1-10)
  4. 附1. 程序设计小结
  5. 程序的运算

程序的运算

C++ 优先级

优先级运算符结合律助记
1::从左至右作用域
2a++; a--; type(); type{}; a(); a[]; .; ->;从左至右后缀自增减、函数风格转型、函数调用、下标、成员访问
3!; ~; ++a; --a; +a; -a; (type); sizeof; &a; *a; new; new[]; delete; delete[];从右至左逻辑非、按位非、前缀自增减、正负、C 风格转型、取大小、取址、指针访问、动态内存分配
4.*; ->*从左至右指向成员指针
5a*b; a/b; a%b;从左至右乘除、取模
6a+b; a-b;从左至右加减
7<< ; >>从左至右按位左右移
8<; <=; >; >=;从左至右大小比较
9==; !=;从左至右等价比较
10a & b从左至右按位与
11a ^ b从左至右按位异或
12 a | b从左至右按位或
13a && b从左至右逻辑与
14a || b从左至右逻辑或
15a ? b : c; =; +=; -=; *=; /=; %=; &=; ^=; |=; <<=; >>=;从右至左三元条件、赋值
16,从左至右逗号

C优先级口诀

  • 括号成员排第一;//括号运算符 成员运算符.  ->
  • 全体单目排第二; //所有的单目运算符比如++、 –、 +(正)、 -(负) 、指针运算*、&
  • 乘除余三,加减四;   //这个”余”是指取余运算即%
  • 移位五,关系六;  //移位运算符:<< >> ,关系:> < >= <= 等
  • 等于(与)不等排第七; //即== 和!=
  • 位与异或和位或; “三分天下”八九十  //这几个都是位运算: 位与(&)异或(^)位或(|)
  • 逻辑或跟与; 十二和十一;   //注意顺序:优先级(||)  底于 优先级(&&)
  • 条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和”,”高
  • 逗号运算级最低!    //逗号运算符优先级最低

% 运算

运算结果和被除数正负号同号

9  %  5 =  4;
9  % -5 =  4;
-9 %  5 = -4;
-9 % -5 = -4;

逻辑运算

  • & 的用法
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
  • | 的用法
0 | 0 = 0
1 | 0 = 1
0 | 1 = 1
1 | 1 = 1
  • ^ 的用法
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0
0 ^ 0 = 0
  • 移位操作  <<  >>