Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7263501
  • 博文数量: 512
  • 博客积分: 12019
  • 博客等级: 上将
  • 技术积分: 6857
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-01 16:46
文章分类

全部博文(512)

文章存档

2024年(2)

2022年(2)

2021年(6)

2020年(59)

2019年(4)

2018年(10)

2017年(5)

2016年(2)

2015年(4)

2014年(4)

2013年(16)

2012年(47)

2011年(65)

2010年(46)

2009年(34)

2008年(52)

2007年(52)

2006年(80)

2005年(22)

分类: C/C++

2011-08-20 12:21:44

记忆方法:

--摘自《C语言程序设计实用问答》  -吕凤翥  吕  涛著 
问题:如何记住运算符的15种优先级和结合性? 
解答:C语言中运算符种类比较繁多,优先级有15种,结合性有两种。 
如何记忆两种结合性和15种优先级?下面讲述一种记忆方法。 
结合性有两种,一种是自左至右,另一种是自右至左,大部分运算符的结合性是自左至右,只有单目运算符、三目运算符的赋值运算符的结合性自右至左。 
优先级有15种。记忆方法如下: 
记住一个最高的:构造类型的元素或成员以及小括号。 
记住一个最低的:逗号运算符。 
剩余的是一、二、三、赋值。 
意思是单目、双目、三目和赋值运算符。 
在诸多运算符中,又分为: 
算术、关系、逻辑。 
两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面。再细分如下: 
算术运算符分  *,/,%高于+,-。 
关系运算符中,》,》=,《,〈=高于==,!=。 
逻辑运算符中,除了逻辑求反(!)是单目外,逻辑与(&&)高于逻辑或(||)。 
逻辑位运算符中,除了逻辑按位求反(~)外,按位与(&)高于按位半加(^),高于按位或(|)。 
这样就将15种优先级都记住了,再将记忆方法总结如下: 
去掉一个最高的,去掉一个最低的,剩下的是一、二、三、赋值。双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中

初单算,关逻,条赋逗(我认为最好的断句)
这样记:
      《一道简单算术题》 
①我“初”次做了一道“简”单的“算术”题。 
②由于我没看懂题目内在的“关系”和“逻辑”。 
(注意:字母顺序G→L) 
③以致乱用“条件”,变量乱“赋值”。
从而导致了运算的错误。 
这么简单的题目啊,我闹了笑话。
(也即“逗”得大家一直笑。) 

-----------------------------------------------------------------------------------

C语言运算符优先级顺口溜[转]

醋坛酸味灌
味落跳福豆

共44个运算符

醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员
坛-单目,9个: ! ~ ++ -- -负号 (类型)  *指针 &取地址 sizeof长度 (结合方向:自右向左)
酸-算术,5个: * / % + -减
味-位移,2个: << >>
灌-关系,6个: < <= > >= == 等于 != 不等于
味-位逻,3个: & 按位与 ^ 按位异或 | 按位或
落-逻辑,2个: && 逻辑与 || 逻辑或
跳-条件,1个,三目: ? :  (结合方向:自右向左)
福-赋值,11个: = += -= *= /= %= >>= <<= &= ^= |=  (结合方向:自右向左)
豆-逗号,1个: ,
结合方向自右向左的只有三类:赋值、单目和三目,其它的都是从左至右结合。


---------------------------------------------------------------------------

一个简单的口诀,可以让你在很段的时间里记忆C语言运算符优先级别,过目不忘……

括号成员第一;  //括号运算符[]() 成员运算符.  ->
全体单目第二;  //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
乘除余三,加减四;  //这个"余"是指取余运算即%
移位五,关系六;  //移位运算符:<< >> ,关系:> < >= <= 等
等于(与)不等排第七;  //即== !=
位与异或和位或;  //这几个都是位运算: 位与(&)异或(^)位或(|) 
"三分天下"八九十; 
逻辑或跟与 //逻辑运算符:|| 和 &&
十二和十一;  //注意顺序:优先级(||)  底于优先级(&&)
条件高于赋值,  //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!
逗号运算级最低!   //逗号运算符优先级最低

由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于
C++.但是应该能够兼容,大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的!


查看相关文章>>
发表评论 游客请 登录 后再发表评论!您还没有 注册 ?30秒快速拥有您的“个人图书馆”!

阅读(2215) | 评论(0) | 转发(0) |
0

上一篇:C中offsetof理解

下一篇:字节序- 概念

给主人留下些什么吧!~~