【C++复习】运算符优先级(简)
只讨论个大概,不管细节
不同优先级的运算符混在一起,就根据优先级算
相同优先级的运算符混在一起,就看它们的结合性(这里不谈)
一定要记住:括号>基本计算>关系>逻辑>底层选手
1、运算符有哪些?
- 单目运算符
*
++
自增,有前置和后置--
自减,有前置和后置!
逻辑非+
正号-
负号
- 双目运算符/三目运算符
- 算术运算符
+
-
*
/
%
- 移位运算符
<<
>>
- 关系运算符
<
<=
>
>=
==
!=
- 位运算符(按位进行逻辑计算)
&
|
^
- 逻辑运算符(依据表达式进行逻辑计算)
&&
||
- 条件运算符(三目)
?:
- 赋值运算符
=
*=
/=
%=
+=
-=
<<=
>>=
&=
^=
|=
- 逗号运算符
,
- 算术运算符
2、运算符优先级原则(一般场景)
- 底层选手:逗号运算符和赋值运算符优先级最低,之后就是三目运算符和双目逻辑运算符
- 一般情况下的法则
- 单目>双目>三目
- 括号>基本计算>关系>逻辑>底层选手
- 注意按位逻辑运算符在关系运算符之后
3、常见运算场景
经典数值判断(算数>关系>双目逻辑)
a+2>3&&b-a>4
//相当于
( (a+2) > 3 ) && ( (b-a) > 4 )
经典三目运算符应用
ans=a>b?a:b
//相当于
ans = ( (a>b) ? a:b )
关系>按位运算
3&4!=2
//等价于
3&(4!=2)
//3与1进行按位与运算,结果为1
z=x<y?x++:y++
int x = 1, y = 2, z = 66;
z = x < y ? x++ : y++;
/*等价于
if(x<y) z=x++;
else z=y++;
*/
/*运行结果:
x=2,y=2,z=1
*/
【C++复习】运算符优先级(简)的更多相关文章
- c/c++系列的运算符优先级总结
经常写程序的时候,遇到运算符优先级的问题,令我汗颜的是,查书的次数挺多的……狠狠心,总结下.不过还要结合大量的编程实践来深入脑海. 1.首先永远忘不了的是,逗号运算符级别最低,毫无争议的还有()括起来 ...
- (转)JavaScript中的运算符优先级
JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低的优先级列出J ...
- C语言运算符优先级和口诀(转)
一共有十五个优先级: 1 () [] . -> 2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof 3 ...
- js 运算符优先级
在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...
- 一道c语言运算符优先级问题
一道c语言运算符优先级问题 #include <iostream> using namespace std; int main() { char test[] = {"This ...
- C语言运算符优先级和口诀 (转)
一共有十五个优先级: 1 () [] . -> 2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof 3 ...
- Java运算符优先级(转)
转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 ...
- java运算符优先级记忆口诀
尊重原创:(口诀)转自http://lasombra.iteye.com/blog/991662 今天看到<java编程思想>中的运算符优先级助记口诀,不过"Ulcer Addi ...
- js中的运算符优先级顺序
js中运算符优先级从高到底的顺序: 算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号
- C/C++运算符优先级
运算符优先级从高至低 优先级 操作符 描述 例子 结合性 1 ()[]->.::++-- 调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作 ...
随机推荐
- snprintf拼接字符串
例如编辑一个txt文档,不断将字符输入,最终形成一个长句子.可以看成是字符串的不断拼接.snprintf函数具有这个功能. #include<stdio.h> void main(void ...
- Java基础之常用类(String类)
String 类 定义 String 类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现.我们可以将字符串看作是String, 但是严格意义上 ...
- [编程基础] Python随机数生成模块总结
Python随机数生成模块教程演示如何在Python中生成伪随机数. 1 介绍 1.1 随机数字生成器 随机数生成器(RNG)生成一组在外观上不显示任何可区分模式的值.随机数生成器分为两类:硬件随机数 ...
- react 高效高质量搭建后台系统 系列 —— 请求数据
其他章节请看: react 高效高质量搭建后台系统 系列 请求数据 后续要做登录模块(主页),需要先和后端约定JSON数据格式,将 axios 进行封装,实现本地的数据模拟 mockjs. Tip:s ...
- 初学《python编程从入门到实践》web应用程序,出现错误
一开始是遇到了TemplateDoesNotExist的错误,上百度都是说改settings.py里面的TEMPLATE的DIRS, 但我改了还是出现问题, 我用的<python编程从入门到实践 ...
- pnpm配置
之前通过 nvm 来管理了 nodejs 版本,结果安装 pnpm 之后,安装全局依赖报错,如下: PS C:\Users\Administrator> pnpm i -g commitizen ...
- SSM框架——整合ssm
SSM整合 1.准备工作 新建一个普通的Maven项目 建好所有需要的架构层 向pom.xml中导入所有的依赖 <!--MyBatis相关--> <dependency> &l ...
- appium如何连接多台设备
我们在做app自动化的时候,若要考虑兼容性问题,需要跑几台设备,要是一台一台的跑比较耗 时,因此需要考虑使用多线程来同时操作多台设备. 1.我们拿两台设备来模拟操作下,使用:adb devices查看 ...
- Java基础学习笔记-关键字、标识符、分隔符
标识符(identifier),我的理解呢,简单来说就是一个常量或者变量的名字啦 命名规则: 只能以 字母..$ 这三种开头,后面的话就可以由字母..$和数字组成 不能用Java中的关键字 不能包含空 ...
- 《《关于我把好好的c++小游戏改的很ex》》
#undef UNICODE#undef _UNICODE#include <iostream>#include <iomanip>#include <string> ...