C/C++ —— 算符优先级的问题
算符优先级首先决定了,一些括号是可加可不加,还是必须加;
==
号的优先级要大于&、|、^
(位运算) 的优先级,所以如果判断一个数是否为偶数:if (x & 1 == 0)// if (x & (1 == 0))// 是永远不会成立的
1. 注意
b & 1 == 0 ⇒ b & (1 == 0) ⇒ 0
- 显然不是期望的结果
- ==(!=,比较运算符) 的优先级要大于 & (|/^,位运算符)
移位运算符(>>/<< )大于比较运算符(> / < / ==)
cout << boolalpha << a == b << endl;// 是会报错的; cout << boolalpha << (a == b) << endl;
相等性比较运算
!= / ==
的优先级要高于赋值运算(=
)。
DIR *dp;
struct dirent *dirp;if (dp = opendir(argv[1]) == NULL){
}// 编译不通过// opendir(argv[1]) == NULL,先结合// 也即 dp = (opendir(argv[1]) == NULL)// 将一个布尔变量,赋值给一个指针显然编译不通过。
操作符的优先级确定了结合律;
!=(不等号) 的优先级要大于 = (赋值运算符)
char key = ''; while (key = getchar() != 'q') { // key 只有两种取值为 0 或者为 1switch(key){case 'f':...case 't':...} }
所以,必要的时候,使用括号确定优先级:
while ((key=getchar()) != 'q') {... }
+/-/*/\(加减乘除)的优先级要大于移位运算符(<<、>>)
C/C++ —— 算符优先级的问题相关推荐
- php中访问控制关键字,PHP 关于访问控制和运算符优先级简介
这篇文章主要介绍了PHP中关于访问控制的和运算符优先级介绍,需要的朋友可以参考下 复制代码 代码如下: class Foo { private $name = 'hdj'; public func ...
- java 运算优先级_Java-运算符优先级
我们先后学习了不同的运算符,通过运算符我们的能进行各种不同的操作实现自己的想要的效果,但是此时还存在一个问题,当在一个表达式中,有可能包含多个有不同运算符连接起来的.具有不同数据类型的数据对象.由于表 ...
- man手册查找ascii码和运算符优先级
1.man手册可以输出ascii码表 man ascii 2.man手册还可以输出运算符的优先级 man operator
- c++语言运算符的优先次序,C++中的运算符和运算符优先级总结
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本文将逐一介绍算术运 ...
- C Tricks(十五)—— 算符优先级的表示
不能简单地按照"先左后右"的次序执行表达式中的运算符. 关于运算符执行次序的规则(即运算优先级), 一部分取决于事先约定的惯例(比如乘除优先于加减), 另一部分则取决于括号 也就是 ...
- C++中的运算符和运算符优先级总结
原文链接:http://www.jb51.net/article/83857.htm 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术 ...
- C:03---运算符优先级
二话不说先看运算符的优先级表: 一.逗号运算符 格式: 整个逗号表达式的值 返回的结果是最后一个表达式的值 使用起来,最好加上括号来返回最后一个表达式的值.否则逗号表达式的意义将失效(见下面演示案例) ...
- java 运算顺序 从左到右_java – 表达式与运算符优先级的从左到右的评估.为什么从左到右的评估似乎胜出了?...
你的表达从左到右评估是正确的.这是Java中的一般评估顺序(可能有例外). 我想你已经弄清楚到底发生了什么: > x从3递增到4,并取新值4 > 5被评估为5 > 4 * 5 = 2 ...
- 标题1100: 简略计算器
2019独角兽企业重金招聘Python工程师标准>>> 标题描写 读入一个只包含 , -, *, / 的非负整数核算表达式,核算该表达式的值. 输入 检验输入包含若干检验用例,每个检 ...
最新文章
- python中使用squarify包可视化treemap图:使用treemap图可视化个人或者集体的股票、基金的持仓结构(treemap with squarify package)
- 2014迅雷校园招聘笔试题答案
- 用了这么多年的 Postman,竟然用错了~
- 入坑emacs之配置文件 .emas.d/init.el -v1.0
- WebStorm取消默认style样式折叠
- 面向对象设计的重要原则:SOLID
- SCVMM2012 SP1 之虚拟机克隆
- android java代码重启,如何在Android中重启服务?
- Git之同一台电脑如何连接多个远程仓库
- 基于Vue2.x的小米商城移动端项目
- 【白皮书】2020腾讯人工智能白皮书.pdf(附下载链接)
- 知识竞赛软件/答题系统/答题小程序
- iPhone屏幕分辨率开发尺寸
- [Android] 微信apk.1安装器,200k可隐藏 解决微信传apk自动改名apk.1f无法安装问题
- uniapp之APP开发
- 七周成为数据分析师 | 数据库
- Elastic 7.15 版:数秒之内打造强大的个性化搜索体验
- WPF(3)----多窗口的实现
- 2022交易猫系统+带聊天/安心购/已验号模板+APP双端跳转
- motrix高速下载百度网盘资源的方法
热门文章
- OpenResty安装下载
- linux 静态连接失败,Windows7下archlinux静态网络配置错误连不上网怎么办?
- Kylin之Caused by :...The table :DWD_ORDER_INFO Dup key found
- dnf上海2服务器维护,DNF上海2出现大面积盗号并迅速蔓延请注意
- 人工智能目标检测模型总结(三)——yolov1模型(1)
- 一个磁性窗体VCL组件的具体实现
- 基于内容的图像检索概述
- javascript 的module 模块化
- 前端系列之HTML基础知识概述
- JAVA受检异常和非受检异常举例