亿万先生论坛

 找回密码
 快速注册
QQ登录 只需一步,快速开始
搜索
下载方法|用单线程|避免多扣帖子规范|求助必读|发帖建议积分策略|勋章介绍|新人必读获取金币|推广论坛|出售帖子基本礼节|致会员信|版规总则
禁涉政治|反对低俗|举报专帖征集相片|留下足迹|推荐精华上传附件|制作分卷|使用网盘禁发qq群|恶意灌水|纯表情帖加入团队|监督机制|安全上网
查看: 4185|回复: 18
打印 上一主题 下一主题

C语言运算符及其优先级汇总口诀表

[复制链接]
跳转到指定楼层
楼主
发表于 2013-7-15 23:09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

注册亿万先生技术论坛,与同行畅聊维修技术,享更多技术论坛功能。

您需要 登录 才可以下载或查看,没有帐号?快速注册
x
C语言运算符及其优先级汇总表口诀。简明易记。
C语言运算符及其优先级汇总表口诀
    圆下箭头一顿号
    非凡增减富强针地长
    三乘除,四加减,五移位
    千万别把鱼忘记,它在盛饭的厨子里
    小灯大灯灯灯不等
    爸喂鱼,舅疑惑,裸鸡也疑惑
    十三姨,十四父,十五逗,兜到低
    “圆下箭头一顿号”指的是第15级的运算符。其中圆指的是运算符(),下指的是下标运算符[],箭头指的是指向结构体成员运算符->,顿号指的是结构体成员运算符、
    “非凡增减富强针地长”指的是第14级的运算符。其中非指的是逻辑运算符!,凡指的是按位取反运算符~,增减指的是自增和自减运算符++和--,富指的是负号运算符-,强指的是类型转换运算符(类型),针指的是指针运算符*,地指的是地址运算符&,长指的是长度运算符Sizeof
    “三乘除,四加减,五移位” 指的是第13级到第11级的运算符。其中三四五并无实际意义,只是起区分级别而已。也可以想象三指的是第13级运算符。乘除指的是乘法运算符*和除法运算符/,加减指的是加法运算符+和减法运算符-,移位指的是左移运算符<<和右移运算符>>
    “千万别把鱼忘记,它在盛饭的厨子里”指的是求余运算符%,它位于盛饭的厨子里,即指和乘法运算符、除法运算符在一起。
    “小灯大灯灯灯不等” 指的是第10级到第9级的运算符。其中小灯大灯指的是关系运算符<、<=、>和>=,灯灯指的是等于运算符==,不等指的是不等于运算符!=
    “爸喂鱼,舅疑惑,裸鸡也疑惑”指的是第8级到第4级的运算符。其中,爸喂鱼之指的是第8级的按位与运算符&,舅疑惑指的是第7级的按位异或运算符^和第6级的按位或运算符||,裸鸡也疑惑指的是第5级、第4级的逻辑与运算符&&和逻辑或运算符||
    “十三姨,十四父,十五逗,兜到低”指的是第3级到第1级的运算符。其中,十三姨指的是条件运算符?: (三有双重含义,即指?:的优先级别是三,它的运算符类型也是三目,?难道不是姨即疑惑吗?),十四父的十四没有实际意义,父指的是赋值运算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,十五逗指的是第1级的运算符,兜到低指的是15级运算符以,结束。
    附录:C语言运算符及优先级

    优先级        运算符        含义                  运算符类型       结合方向
    15        ()        圆括号                            单目           自左向右
        []        下标运算符
        —>        指向结构体成员运算符
        、        结构体成员运算符
    14        !        逻辑非运算符                                        自右向左
        ~        按位取反运算符
        ++        自增运算符
        --        自减运算符
        -        负号运算符
        (类型)        类型转换运算符
        *        指针运算符
        &        地址运算符
        Sizeof        长度运算符
    13        *        乘法运算符                            双目          自左向右
        /        除法运算符
        %        求余运算符
    12        +        加法运算符
        -        减法运算符
    11        <<        左移运算符
        >>        右移运算符
    10        <、<=、>、>=        关系运算符
    9        ==        等于运算符
        !=        不等于运算符
    8        &        按位与运算符
    7        ^        按位异或运算符
    6        |        按位或运算符
    5        &&        逻辑与运算符
    4        ||        逻辑或运算符
    3        ?:        条件运算符                          三目          自右向左
    2        =、+=、-=、*=、
           /=、%=、>>=、
           <<=、&=、^=、|=   赋值运算符         双目
    1        ,        逗号运算符                              双目         自左向右
    ②括号成员第一;        //括号运算符[]() 成员运算符.  ->    全体单目第二;        //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
    乘除余三,加减四;   //这个"余"是指取余运算即%
    移位五,关系六;    //移位运算符:<< >> ,关系:> < >= <= 等
    等于(与)不等排第七;    //即== !=
    位与异或和位或;    //这几个都是位运算: 位与(&)异或(^)位或(|)
    "三分天下"八九十;
    逻辑或跟与           //逻辑运算符:|| 和 &&
    十二和十一;            //注意顺序:优先级(||)  底于 优先级(&&)
    条件高于赋值,       //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!
    逗号运算级最低!   //逗号运算符优先级最低
    由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于C++.但是应该能够兼容,大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的!

    ((*strDest++=*strSrc++)!='\0');  :
    重点:++后增运算符优先级高于*
    1.*strDest++相当于 *(strDest++)
    2.由于是后自增,故执行顺序为:
               *strDest=*strSrc
               strDest++ strsrc++  //该级顺序不明
              将*strDest与'\0'比较 //即,整个表达式的值为*strDest与'\0'的比较结果
    值得注意的是,对于赋值表达式,表达式本身的值等于左边子表达式的值。
    通过以上深入的分析,我们知道这个表达式完成了以下多个功能:
      1.对于指针strDest, strSrc,将strSrc所指的内存空间的值赋给由strDest所指的内存空间。
      2.判断赋值后的strDest所指的内存空间的指是否等于0。
      3.对于指针strDest,strSrc,他们的值分别加1,即指向下一个元素。
    即:该表达式实现了以下三个功能:
      1.对于指针strDest, strSrc,将strSrc所指的内存空间的值赋给由strDest所指的内存空间。
      2.判断赋值后的strDest所指的内存空间的值是否等于0。
      3.对于指针strDest,strSrc,他们的值分别加1,即指向下一个元素。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏20 分享分享 分享淘帖 支持支持1 反对反对
沙发
发表于 2013-7-16 21:34:26 | 只看该作者
:好记住谢谢了
回复 支持 反对 使用道具 举报
板凳
发表于 2013-8-15 22:53:33 | 只看该作者
谢谢分享      ,,,,,
回复 使用道具 举报
4#
发表于 2013-10-26 19:50:51 | 只看该作者
这个有意思呀。
回复 使用道具 举报
5#
发表于 2013-11-20 11:31:55 | 只看该作者
学习了,,,,,,,,,
回复 使用道具 举报
6#
发表于 2013-11-30 22:47:14 | 只看该作者
不太了解。
回复 使用道具 举报
7#
发表于 2013-12-1 22:10:40 | 只看该作者
看不懂,不太理解
回复 使用道具 举报
8#
发表于 2014-6-29 15:40:40 来自手机 | 只看该作者
看不懂????????
回复 使用道具 举报
9#
发表于 2015-2-11 00:06:21 | 只看该作者
谢谢分享,收藏了
回复 使用道具 举报
10#
发表于 2015-2-26 08:49:09 | 只看该作者
看不懂,不太理解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 快速注册
本版积分规则
手机版|APP|亿万先生技术论坛 ( 鄂ICP备 09003585号-1 )   GMT+8, 2018-1-18 23:19 , Processed in 0.159145 second(s), 9 queries , Gzip On, Memcache On.
Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc.
CopyRight © 亿万先生论坛
电子邮箱:admin@jdwx.info | 联系 QQ:3081868839 | 官方网址:www.jdwx.info
Qiji. All Rights Reserved
服务条款 | 隐私声明
Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有
鄂ICP备09003585号-1鄂公网安备42010602000420号
快速回复 返回顶部 返回列表
亿万先生官网欢迎您