丢脸啊,今天写一道算法题,第一次没写对。改了半天愣是没看出来错哪,后面说出了一下过程,突然发现是运算符优先级惹得祸 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语言备忘录——运算符优先级的更多相关文章

  1. 关于C语言中运算符优先级的一次错误

    好久没碰编程了,最近有点闲,又拾起来.做了个简单的网络测试程序,测试的时候发现有条语句老是获取不到结果.如下: if(portnumber=atoi(argv[1])>65535) portnu ...

  2. C语言运算符优先级总结

    一 写在开头1.1 本文内容本文内容为C语言中运算符优先级的总结.转载于:https://blog.csdn.net/huangblog/article/details/8271791,感谢原作者的付 ...

  3. c 语言 运算符 优先级

    C 语言 运算法优先级 从高 到 低 优先级 运算符 功能 适用范围 结合性 15 () [] . -> 括号 下标 存取成员 存取成员 表达式 数组 结构联合 结构联合 → (左→右) 14 ...

  4. 一道c语言运算符优先级问题

    一道c语言运算符优先级问题 #include <iostream> using namespace std; int main() { char test[] = {"This ...

  5. C语言学习及应用笔记之一:C运算符优先级及使用问题

    C语言中的运算符绝对是C语言学习和使用的一个难点,因为在2011版的标准中,C语言的运算符的数量超过40个,甚至比关键字的数量还要多.这些运算符有单目运算符.双目运算符以及三目运算符,又涉及到左结合和 ...

  6. C语言运算符优先级和ASCII表

    1. C语言运算符优先级及结合性 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成 ...

  7. C语言运算符优先级及结合性

    今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...

  8. C语言的运算符的优先级与结合性+ASCII表

    [0]README 0.1) 内容来源于 C程序设计语言, 旨在整理出C语言的运算符的优先级与结合性, 如下图所示(哥子 记了大半年都没有记住,也是醉了,每次都要去翻): Alert)以下内容转自:h ...

  9. (转)C语言运算符优先级 详细列表

    C语言运算符优先级 详细列表 文章转自:Slyar Home 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括号 (表达式)/函数 ...

随机推荐

  1. Linux命令:ip命令

    ip命令功能:配置网络属性 一.ip link 系列 ip link ip [-s] link show        # 查看默认信息 ip link show eth0 ip link show ...

  2. windows 10 遥控操作和传输文件

    传输文件命令 scp file user@192.168.1.1:/home/           file文件传到192.168.1.1/home/目录下 scp -r directory user ...

  3. ProtoBuf开发者指南

    目录 1   概览 1.1   什么是protocol buffer 1.2   他们如何工作 1.3   为什么不用XML? 1.4   听起来像是为我的解决方案,如何开始? 1.5   一点历史 ...

  4. 获取navigationController中的控制器

    @implementation UIViewController (UIViewControllerExt) - (void)popViewController:(NSString *)control ...

  5. 应用间的API访问如何认证?

    任何一个一个应用要访问另一个应用的API,需要首先到开放平台获取访问accesskey, 然后访问目标应用,目标应用中先检查来源访问token是否已存在缓存中,不存在需要去开放平台校验accesske ...

  6. 越南FCK批量拿站

    关键词:inurl:detail_product.asp?lang= /FCKeditor/_samples/asp/sample01.asp/FCKeditor/_samples/asp/sampl ...

  7. Python学习第三课——运算符

    # 运算符 + - * / **(幂) %(取余) //(取整) num=9%2 print("余数为"+(str)(num)) #运算结果为 1 num1=9//2 print( ...

  8. java虚拟机之垃圾回收机制

    一.需要回收的内存区域     程序计数器.虚拟机栈.本地方法栈 3 个区域随线程生灭(因为是线程私有),栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作.而 Java 堆和方法区则不一 ...

  9. Oracle建表时主键自增

    1.创建表 /*第一步:创建表格*/ create table t_user( id int primary key, --主键,自增长 username ), password ), type ) ...

  10. 「Luogu1231」教辅的组成

    传送门 Luogu 解题思路 看到种匹配问题,马上想到最大流所以这就是一道SB题. 但是有一个小问题,就是每一本书都只能匹配一次,那么我们对所有书进行拆点即可,这个操作类似于这题 细节注意事项 细节有 ...