您的位置:首页 > 其它

C运算符的优先级速记法

2013-12-19 10:42 99 查看
相信最初学C语言的朋友大都背过它的运算符优先级,我当时是背的没有忘的快;

后来就不太在意了,因为写代码时不确定的就通过括号来保证,这也是一些编程规范里提倡的,

但有时当读别人代码时你就又可能存在某些不确定的地方了,直到最近我发现了一个口决,真的很好,

可以很快就把所有优先级顺序都轻松记住。

口决如下 :

圆下箭头一顿号
非凡增减富强星地长(chang)
三乘除、四加减、五移位
千万别把鱼忘记,它在盛饭的厨子里
小灯大灯灯灯不等
爸喂鱼、舅疑惑、裸鸡也疑惑
十三姨、十四父、十五逗、兜到底

解析:
“圆下箭头一顿号”,圆指运算符(),下指下标运算符[],箭头指的是指向结构体成员运算符->,顿号也是结构体成员运算符.

“非凡增减富强星地长”,非指逻辑运算符!,凡指按位取反运算符~,增减指的是自增自减运算符,++,--,富指的是负号运算符-,
强指的是强制类型转换运算符(type),星指的是指针运算符*,地指的是地址运算符&,长指的是求长度运算符sizeof

“三乘除、四加减、五移位”,三四五指的是运算符的优先级,并无实际意义,只是区分级别用。乘除、加减、移位分别代表算术运算符*/ + - << >>

“千万别把鱼忘记,它在盛饭的厨子里”,指求余运算符,它在乘除运算符那一级别

“小灯大灯灯灯不等” 指关系运算符 < <= > >=; == !=

“爸喂鱼、舅疑惑、裸鸡也疑惑”分别指按位与 &,按位异或 ^,另外还有再低一级的运算符按位或| ,裸鸡也疑惑指逻辑运算符 逻辑与 && 逻辑或||

“十三姨、十四父、十五逗、兜到底”,姨指条件运算符 ?: (三有双重含义,它的优先级是十三,并且它是三目运算符,难道不姨即疑惑吗),
十四父指的是赋值运算符 = += -= *=/= %= &= ^= |= <<= >>=

十五逗指逗号运算符,兜到底,OK结束。

附运算符表 :

关联运算符 () []-> .
一元运算符 ! ~ ++ -- + - * & (type) sizeof 自右向左
乘法和除法 * / %
加法和减法 + -
移位运算符 << >>
关系运算符 < <= > >=
“相等”比较 == !=
位运算符 &
位运算符 ^
位运算符 |
逻辑运算符 &&
逻辑运算符 ||
条件运算符 ? :
赋值运算符 = += -= *= /= %= &= ^= |= <<=>>=
逗号运算符 ,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: