c语言的运算符很多,具有不同的优先级和结合性。 我们把它们都列举出来,让大家比较容易记忆:
优先顺序
运算符
名字或意思
使用形态
对准方向
说明
1
[]
序列下标
数组名称[常量表达式]
从左到右
()
括号
(公式) /函数名称(形参表) ) ) ) ) ) ) )。
水平。
成员选择(对象)
对象.成员名称
_
成员选择(指针)
对象指针-成员名称
2
_
负号运算符
-公式
从右到左
单眼算子
(类型)
强制类型转换
(数据类型)表达式
自增算子
变量名/变量名
单眼算子
--
自减法运算符
-变量名/变量名-
单眼算子
*
取值运算符
*指针变量
单眼算子
取地址运算符
变量名称
单眼算子
!
非逻辑运算符
! 公式
单眼算子
~
逐位逆运算符
~式
单眼算子
sizeof
长度运算符
sizeof (公式)
3
/
消除
公式/项目
从左到右
双目算子
*
乘坐
公式*公式
双目算子
%
剩余(模具)。
整数表达式/整数表达式
双目算子
4
加号
公式
从左到右
双目算子
_
负的
公式-公式
双目算子
5
向左移动
变量
从左到右
双目算子
向右移动
变量表达式
双目算子
6
大于
公式
从左到右
双目算子
=
大于相等
公式=公式
双目算子
小于
公式
双目算子
=
小于相等
公式=公式
双目算子
7
==
等于
公式==公式
从左到右
双目算子
!=
不相等
仪式!=公式
双目算子
8
按位和
公式
从左到右
双目算子
9
^
基于异或
公式^公式
从左到右
双目算子
10
|
按位或
公式|公式
从左到右
双目算子
11
逻辑乘积
公式
从左到右
双目算子
12
||
或逻辑
公式||公式
从左到右
双目算子
13
?
条件运算符
公式1? 式2:式3
从右到左
三目运算符
14
=
赋值运算符
变量=表达式
从右到左
//
除法运算
变量/=表达式
*=
乘法后代入
变量*=表达式
%=
取型赋值
变量%=表达式
=
加法后代入
变量=表达式
-=
扣分后代入
变量-=表达式
=
向左移动并分配值
变量=表达式
>=右移后赋值
变量>>=表达式
&=
按位与后赋值
变量&=表达式
^=
按位异或后赋值
变量^=表达式
|=
按位或后赋值
变量|=表达式
15
,
逗号运算符
表达式,表达式,…
左到右
从左向右顺序运算
注:同一优先级的运算符,运算次序由结合方向所决定。
上面的表无需死记硬背,很多运算符的规则和数学中是相同的,用得多,看得多自然就记得了。如果你是在记不住,可以使用( )。
一些容易出错的优先级问题
上表中,优先级同为1 的几种运算符如果同时出现,那怎么确定表达式的优先级呢?这是很多初学者迷糊的地方。下表就整理了这些容易出错的情况:
这些容易出错的情况,希望读者好好在编译器上调试调试,这样印象会深一些。一定要多调试,光靠看代码,水平是很难提上来的。调试代码才是最长水平的。
【部分原创】标准C语言的优先级、结合性、求值顺序、未定义行为和非确定行为浅析
零. 优先级 在C++ Primer一书中,对于运算符的优先级是这样描述的: Precedence specifies how the operands are grouped. It ...
[转]说说C语言运算符的“优先级”与“结合性”
补充自己的一点理解: 1.关于++i 与 i++的区别. ++i 和 i++如果是单独使用的语句,即二者后面均加上分号,或者其他单独使用的语句,没有任何区别.例如: for(i=0;i<100; ...
C语言左值,运算符的优先级以及结合性探讨
刚刚开始看一本书.,相信学习C语言的大家都对这本书有耳闻.今天看到了里面的贪心法则.也即在读到一个字符后,尽可能多的读入更多的字符,直到读入的字符组成的字符串已经不可能再组 ...
说说C语言运算符的“优先级”与“结合性”
论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读.这样的迷惑或解读大都发生在表达式中存在着较为复杂的副作用时.但从本质上看,仍然是概念理解上的偏差.本文试图通过对三个典型表达式的分析,集 ...
C语言运算符优先级及结合性
今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...
C语言的运算符的优先级与结合性+ASCII表
[0]README 0.1) 内容来源于 C程序设计语言, 旨在整理出C语言的运算符的优先级与结合性, 如下图所示(哥子 记了大半年都没有记住,也是醉了,每次都要去翻): Alert)以下内容转自:h ...
C语言运算符优先级和结合性一览表
所谓优先级就是当一个表达式中有多个运算符时,先计算谁,后计算谁.这个其实我们在小学学算术的时候就学过,如1+4÷2. 但是C语言中的运算符已经远不止四则运算中的加减乘除了,还有其他很多运算符.当它们出 ...
C语言运算符优先级和结合性
运算符优先级和结合性 优先级 运算符 结合性 ...
swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)
swift:高级运算符 http://www.cocoachina.com/ios/20140612/8794.html 除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和 ...
随机推荐
consul模板的说明2
保证模板的正常执行 使用||true $ consul-template -template "in.ctmpl:out.file:service nginx restart || true ...
【csuoj1014】 西湖三人行
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1014 (题目链接) 题意 从无向图图上一点到达另一点,可以步行,搭公交或者是打的,不同的交通方式花 ...
mysql加单引号和不加单引号的性能比较
刚刚我们说过了,生活中难免会有一些不如意,比如,我们用一个字符串类型的字段来作为主键,表面上,这太不如意了,然而,事实也证明这是有用的.问题也就出来了,当在查询语句中对该字段值加上单引号和不加查询耗时 ...
BZOJ3028 食物 (生成函数)
首先 1+x+x^2+x^3+...+x^∞=1/(1-x) 对于题目中的几种食物写出生成函数 (对于a*x^b , a表示方案数 x表示食物,b表示该种食物的个数) f(1)=1+x^2+x^4+. ...
C++转义字符 &;amp; keyword
转义字符: 换行符 n 水平制表符t 纵向制表符 v 退格符 b 回车符 r 进纸符 f 报警(响铃)符 a 反斜线 \ 疑问号 ? 单引號 ' 双引號 " ...
Mac内建Apache开机启动
取消: sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 添加: sudo launchctl ...
【转】 Linux内核中读写文件数据的方法--不错
原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大 ...
SpringCloud Config服务端
1.导入依赖 org.springframework.cloud
Swing——简单的计算器
前言 这是博主学习完Swing后,使用Swing实现的一个简单计算器.做简单的计算器的目的是将最近所学的Swing给应用起来,写博文介绍的目的是记录做这个计算器的思路.下面将分为界面和事件两部分介绍. ...