【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 ()[]->.::++-- 调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作 ...
随机推荐
- 【FAQ】在华为鸿蒙车机上集成华为帐号的常见问题总结
随着新一代信息技术与汽车产业的深度融合,智能网联汽车正逐渐成为汽车产业发展的战略制高点,无论是传统车企还是新势力都瞄准了"智能座舱"这种新一代人机交互方式.面对竞争如此激烈的车机市 ...
- PyTorch复现AlexNet学习笔记
PyTorch复现AlexNet学习笔记 一篇简单的学习笔记,实现五类花分类 这里只介绍复现的工作,如果想了解更多有关网络的细节,请去看论文<ImageNet Classification wi ...
- vue项目 h5上拉加载(分页功能)
<template> <div class="receivable"> <div class="application-header fle ...
- 【转载】EXCEL VBA 工作表拆分
用VBA拆分工作表是一个不错的方法,特别是在处理大量数据的时候,能节省不少时间. 1.高级筛选: 筛选并复制到新工作表的关键代码如下: Range("Database").Ad ...
- CH9126常见问题解决(持续更新)
1. 有关CH9126时区的问题 答:当CH9126作为SNTP服务器的时候,通过串口设置的时间为东八(北京)时区的绝对时间.但是如果是Windows向CH9126SNTP服务器要时间,那么Ch912 ...
- Shell 基本常识
Shell 进入命令行 启动 shell 常用命令 系统管理命令 处理数据命令 Linux 基础管理命令 用户管理 管理文件系统 软件包管理系统 使用容器管理软件 理解 shell 子 shell 环 ...
- ArcGIS工具 - 统计要素数量
查询和统计是GIS中的重要功能之一.在ArcGIS中可以按属性信息.按空间位置关系进行查询和统计.今天为源GIS给大家分享使用ArcPy编程实现批量统计地理数据库要素类记录数量. 软件应用 统计单个图 ...
- [深度探索C++对象模型]memcpy和memset注意事项
不管使用memcpy()还是memset(),都只有在"classes不含任何由编译器产生的内部members"时才能运行.如果这个类声明一个或者一个以上的virtual func ...
- vue打包---放到服务器下(一个服务器多个项目需要配置路径),以及哈希模式和历史模式的不同配置方法
哈希模式,好用,不需要服务器配合分配路径指向,自己单机就可以打开了 接下来上代码截图 接下来开始截图 历史模式 历史模式需要后端支持 打包后自己直接点击是打不开的 截图如下
- JSTL概述和JSTL常用标签if
JSTL概述 1.概念:JavaServlet Pages Tag Library(JSP标准标签库) 是由Apache组织提供的开源的免费的jsp标签 <标签> 2.作用:用于简化和替换 ...