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 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数 ...
随机推荐
- heap(堆)
二叉堆: 以前写过二叉堆,但很少使用,快忘了.最近又查了一些关于堆的资料,于是重新熟悉一下这种数据结构. 一个快速又简单的方式建立二叉堆,仅使用简单vector(或者数组也行): #include & ...
- 58按之字形顺序打印二叉树 +队列访问使用front和back,栈才是top
题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 思路:最暴力的方法就是使用队列进行层次遍 ...
- DRF项目之序列化器和视图重写方法的区别
我们,都知道,DRF框架是一款高度封装的框架. 我们可以通过重写一些方法来实现自定义的功能. 今天,就来说说在视图中重写和序列化器中重写方法的区别. 在视图中重写方法: 接收请求,处理数据(业务逻辑) ...
- 通过Java读取xml文件内容
读取XML中的内容就需要对XML进行解析,目前对XML进行解析的方法分为四种: 下面解析的方法是DOM4J,需要下载jar包dom4j:https://dom4j.github.io/ package ...
- UniGUI之Login窗口(10)
在UniGUI的CHM帮助里读到的. 一定要新建一个其他空白的工程,然后再添加LoginForm LoginForm 是另一种特殊的表单类型, 仅用于登录目的. 此操作将创建一个与常规窗体外观相同的空 ...
- FLASK - 请求和响应
请求都封装在request对象里面了 from flask import Flask from flask import request from flask import render_templa ...
- JAVA培训—线程同步--卖票问题
线程同步方法: (1).同步代码块,格式: synchronized (同步对象){ //同步代码 } (2).同步方法,格式: 在方法前加synchronized修饰 问题: 多个人同时买票. 1. ...
- smoj2806建筑物
题面 有R红色立方体,G绿色立方体和B蓝色立方体.每个立方体的边长是1.现在有一个N × N的木板,该板被划分成1×1个单元.现在要把所有的R+G+B个立方体都放在木板上.立方体必须放置在单元格内,单 ...
- 暴强贴:从.NET平台调用Win32 API----转载
水之真谛 关注 17人评论 27649人阅读 2007-02-28 17:03:47 作者:刘铁猛日期:2005-12-20关键字:C# .NET Win32 API 版权声明:本文章受知识产权法 ...
- 指定GPU运行python程序
一.命令行运行python程序时 1.首先查看哪些GPU空闲,nvidia-smi显示当前GPU使用情况. nvidia-smi 2.然后指定空闲的GPU运行python程序. CUDA_VISIBL ...