C语言备忘录——运算符优先级
丢脸啊,今天写一道算法题,第一次没写对。改了半天愣是没看出来错哪,后面说出了一下过程,突然发现是运算符优先级惹得祸 if (!num % 2){ …… },!的运算优先级高于%,啊啊啊,丧心病狂我找了十来分钟,把老脸都给丢尽了。为了避免这种低级错误, 所以写下这篇博客巩固一下运算符优先级。
不叨叨,直接上表。
|
优先级
|
运算符
|
名称
|
使用方法
|
运算顺序
|
说明
|
|
1
|
[]
|
数组下标
|
数组名[整型表达式]
|
左到右
|
|
|
()
|
圆括号
|
(表达式)/函数名(形参表)
|
|||
|
.
|
成员选择(对象)
|
对象.成员名
|
|||
|
->
|
成员选择(指针)
|
对象指针->成员名
|
|||
|
2
|
-
|
负号运算符
|
-算术类型表达式
|
右到左
|
单目运算符
|
|
(type)
|
强制类型转换
|
(纯量数据类型)纯量表达式
|
|||
|
++
|
自增运算符
|
++纯量类型可修改左值表达式
|
单目运算符
|
||
|
--
|
自减运算符
|
--纯量类型可修改左值表达式
|
单目运算符
|
||
|
*
|
取值运算符
|
*指针类型表达式
|
单目运算符
|
||
|
&
|
取地址运算符
|
&表达式
|
单目运算符
|
||
|
!
|
逻辑非运算符
|
!纯量类型表达式
|
单目运算符
|
||
|
~
|
按位取反运算符
|
~整型表达式
|
单目运算符
|
||
|
sizeof
|
长度运算符
|
sizeof 表达式
sizeof(类型)
|
|||
| 3 |
/
|
除
|
表达式/表达式
|
左到右 |
双目运算符
|
|
*
|
乘
|
表达式*表达式
|
双目运算符
|
||
|
%
|
余数(取模)
|
整型表达式%整型表达式
|
双目运算符
|
||
|
4
|
+
|
加
|
表达式+表达式
|
左到右
|
双目运算符
|
|
-
|
减
|
表达式-表达式
|
双目运算符
|
||
|
5
|
<<
|
左移
|
整型表达式<<整型表达式
|
左到右
|
双目运算符
|
|
>>
|
右移
|
整型表达式>>整型表达式
|
双目运算符
|
||
|
6
|
>
|
大于
|
表达式>表达式
|
左到右
|
双目运算符
|
|
>=
|
大于等于
|
表达式>=表达式
|
双目运算符
|
||
|
<
|
小于
|
表达式<表达式
|
双目运算符
|
||
|
<=
|
小于等于
|
表达式<=表达式
|
双目运算符
|
||
|
7
|
==
|
等于
|
表达式==表达式
|
左到右
|
双目运算符
|
|
!=
|
不等于
|
表达式!= 表达式
|
双目运算符
|
||
|
8
|
&
|
按位与
|
整型表达式&整型表达式
|
左到右
|
双目运算符
|
|
9
|
^
|
按位异或
|
整型表达式^整型表达式
|
左到右
|
双目运算符
|
|
10
|
|
|
按位或
|
整型表达式|整型表达式
|
左到右
|
双目运算符
|
|
11
|
&&
|
逻辑与
|
表达式&&表达式
|
左到右
|
双目运算符
|
|
12
|
||
|
逻辑或
|
表达式||表达式
|
左到右
|
双目运算符
|
|
13
|
?:
|
条件运算符
|
表达式1? 表达式2: 表达式3
|
右到左
|
三目运算符
|
|
14
|
=
|
赋值运算符
|
可修改左值表达式=表达式
|
右到左
|
op= |
|
/=
|
除后赋值
|
可修改左值表达式/=表达式
|
op= | ||
|
*=
|
乘后赋值
|
可修改左值表达式*=表达式
|
op= | ||
|
%=
|
取模后赋值
|
可修改左值表达式%=表达式
|
op= | ||
|
+=
|
加后赋值
|
可修改左值表达式+=表达式
|
op= | ||
|
-=
|
减后赋值
|
可修改左值表达式-=表达式
|
op= | ||
|
<<=
|
左移后赋值
|
可修改左值表达式<<=表达式
|
op= | ||
|
>>=
|
右移后赋值
|
可修改左值表达式>>=表达式
|
op= | ||
|
&=
|
按位与后赋值
|
可修改左值表达式&=表达式
|
op= | ||
|
^=
|
按位异或后赋值
|
可修改左值表达式^=表达式
|
op= | ||
|
|=
|
按位或后赋值
|
可修改左值表达式|=表达式
|
op= |
注意到了吗?并不是所有的逻辑运算符都在算数运算符后面 !这玩意就是特例,而且,逻辑运算符也是有优先级的(离散数学里讲过)所以运算符优先级应该是
! > 算术 > 关系 > && > || > 三目 > 赋值 > op=
C语言备忘录——运算符优先级的更多相关文章
- 关于C语言中运算符优先级的一次错误
好久没碰编程了,最近有点闲,又拾起来.做了个简单的网络测试程序,测试的时候发现有条语句老是获取不到结果.如下: if(portnumber=atoi(argv[1])>65535) portnu ...
- C语言运算符优先级总结
一 写在开头1.1 本文内容本文内容为C语言中运算符优先级的总结.转载于:https://blog.csdn.net/huangblog/article/details/8271791,感谢原作者的付 ...
- c 语言 运算符 优先级
C 语言 运算法优先级 从高 到 低 优先级 运算符 功能 适用范围 结合性 15 () [] . -> 括号 下标 存取成员 存取成员 表达式 数组 结构联合 结构联合 → (左→右) 14 ...
- 一道c语言运算符优先级问题
一道c语言运算符优先级问题 #include <iostream> using namespace std; int main() { char test[] = {"This ...
- C语言学习及应用笔记之一:C运算符优先级及使用问题
C语言中的运算符绝对是C语言学习和使用的一个难点,因为在2011版的标准中,C语言的运算符的数量超过40个,甚至比关键字的数量还要多.这些运算符有单目运算符.双目运算符以及三目运算符,又涉及到左结合和 ...
- C语言运算符优先级和ASCII表
1. C语言运算符优先级及结合性 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成 ...
- C语言运算符优先级及结合性
今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...
- C语言的运算符的优先级与结合性+ASCII表
[0]README 0.1) 内容来源于 C程序设计语言, 旨在整理出C语言的运算符的优先级与结合性, 如下图所示(哥子 记了大半年都没有记住,也是醉了,每次都要去翻): Alert)以下内容转自:h ...
- (转)C语言运算符优先级 详细列表
C语言运算符优先级 详细列表 文章转自:Slyar Home 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数 ...
随机推荐
- 异常 日志-<多重catch语句>
try{ }catch(){ }catch(){ }
- SRS命令
下载源码: git clone https://github.com/ossrs/srs.git 编译: cd srs/trunk ./configure && make 开启服务: ...
- 【html&css学习】表单及表单项
表单在网络中很常见,如百度的搜索框,各种登录框密码,贴吧的帖子等都需要用表单来完成.表单是元素form且必须要有action属性来设置表单提交的地址.使用form创建的仅仅只是空表单,还有要表单项,常 ...
- 「Luogu4556」Vani有约会-雨天的尾巴
「Luogu4556」Vani有约会-雨天的尾巴 传送门 很显然可以考虑树上差分+桶,每次更新一条链就是把这条链上的点在桶对应位置打上 \(1\) 的标记, 最后对每个点取桶中非零值的位置作为答案即可 ...
- js中每隔一段时间执行一次
window.setInterval("flushs()",1000);
- isEqual判断相等性
1.isEqual方法用来判断两个比较者的内存地址是否一样.为了细分,有isEqualToString.isEqualToNumber.isEuqalToValue等,使用时一定要精确使用,比如虽然N ...
- pytest+allure(pytest-allure-adaptor基于这个插件)设计定制化报告
一:环境准备 1.python3.6 2.windows环境 3.pycharm 4.pytest-allure-adaptor 5.allure2.8.0 6.java1.8 pytest-allu ...
- Acwing272 最长公共上升子序列
题目大意:给定两个大小为n的数组,让你找出最长公共上升子序列的长度. 分析:这是一个比较好的dp题,LIS和LCS两大经典线性dp问题相结合,简称LCIS. 代码(O(n*n*n)写法): #incl ...
- CSS3实现放大缩小动画
HTML <div> <div style="height: 35px;width:300px;background:orangered;border-radius: 4p ...
- Tomcat能启动,无法访问方法,
好像没有扫描到controller 好像配置文件都没有加载成功 项目启动后,目录下多出一个ssmtest.xml文件 D:\Program Files\JDK-tomcat\apache-tomcat ...