- 1
- 0
- 约2.75千字
- 约 4页
- 2017-08-19 发布于北京
- 举报
C语言运算符优先级表(由上至下,优先级依次递减)
运算符 结合性 () [] - . 自左向右 ! ~ ++ -- - (type) * sizeof 自右向左 * / % 自左向右 + - 自左向右 自左向右 = = 自左向右 == != 自左向右 自左向右 ^ 自左向右 | 自左向右 自左向右 || 自左向右 ?: 自右向左 Assignments 自右向左 , 自左向右 1、() [] - .之类的理所当然是最优先的,其实它们压根也不算什么运算符了。
2、除了上面的四种运算符之外,接下来就是单目运算符,也就是! ~ ++ -- - (type) * sizeof 了。记住它们的顺序可是自右向左啊!其实结合实例是很容易理解的,比如i++等。
3、接着是双目运算符了,也是C语言运算符优先级中最容易让人混淆的地方了。其实也没有那么可怕,你认真观察就会发现。在双目运算符中,算术运算符优先级最高,然后是移位运算符,接着是关系运算符,再着是逻辑运算符。不过这边需要说的是,在关系运算符中, = =比== !=的优先级来得高。此外,在逻辑运算符中,与运算又比或运算优先级来得高,异或则处于二者之间。同样的,你可以类比出与||的优先级关系。
4、在双目操作符之后,就是三目操作符了,没有什么好说的了。
5、然后是赋值操作符,你也许会把赋值操作符与三目运算符的优先级搞混。没有关系,我想你一定写过这样的语句(如果没有,请你记住!):max = (ab)?a:b; ,从这个语句里,你就不难记住赋值运算符为什么比三目运算符的优先级低了!
6、逗号运算符是分割各个子语句的(感觉这么说有点不准确,不过我想大家会明白我的意思的),自然优先级最低了,我想这个应该不是很容易混淆的。
总结一下,按运算符优先级从高到低:单目运算符-双目运算符-三目运算符-赋值运算符-逗号运算符 特别在双目运算符中,按 运算符优先级从高到低:算术运算符-移位运算符-关系运算符(其中== 和 !=优先级又较低)-逻辑运算符(按位与-〉按位异或-〉按位或-〉逻辑与-〉逻辑或)!
运算符的结合性指同一优先级的运算符在表达式中操作的组织方向, 即: 当一个运算对象两侧运算符的优先级别相同时, 运算对象与运算符的结合顺序, C 语言规定了各种运算符的结合方向( 结合性) 。大多数运算符结合方向是“自左至右”, 即: 先左后右, 例如a- b+c, b 两侧有- 和+两种运算符的优先级相同, 按先左后右结合方向, b 先与减号结合, 执行a- b 的运算, 再执行加c 的运算。除了自左至右的结合性外, C 语言有三类运算符参与运算的结合方向是从右至左。即: 单目运算符, 条件运算符, 以及赋值运算符。关于结合性的概念在其他高级语言中是没有的, 这是C语言的特点之一。
++a 或a++和--a 或a--分别称为前置加或后置加运算和前置减或后置减运算,都是单目运算符。值得注意的是, 前置、后置运算只能用于变量, 不能用于常量和表达式, 且结合方向是从右至左。如当i=6 时, 求- i++的值和i 的值。由于“- ”(负号) “++”为同一个优先级, 故应理解为- (i++),又因是后置加, 所以先有-i++的值为-6, 然后i 增值1 为7, 即i=7。
例1 main(){
int a=3,b=5,c;c=a*b+++b;printf ( “c=%d”, c);
}
要得出c 的值, 首先要搞清+++的含义。++运算符的结合方向是自右向左的, 如果将表达式理解为:c=a*b+(++b);实际上C 编译器将表达式处理为:c=(a*b++)+b, 因为C 编译器总是从左至右尽可能多地将若干个字符组成一个运算, 如i+++j 等价于(i++)+j。接下来是解决a*b++的问题, 因为++运算符的运算对象只能是整型变量而不能是表达式或常数, 所以a*b++显然是a*(b++)而非(a*b)++, 因此整个表达式就是c=(a*(b++))+b,结果为c=20。
例2 main(){
int i=1,j;j=i+++i+++i++;printf( “i=%d,j=%d/n”, i,j);
}
例3 main(){
int i=1,m;m=(++i)+(++i)+(++i);
printf( “i=%d,m=%d/n”, i,m);
}
j 和m 的值均由表达式求得, 并且这两个表达式均由自增运算符、加法运算符和赋值运算符组成。那么, 它们的值到底为多少呢? j=1+1+1=3 还是j=1+2+3=6? m=2+3+4=9 还是m=4+4+4=12?上机运行结果为: i=4,j=3,m=10(VC6.0)。分析: 运算符“++”,“
您可能关注的文档
- 贵州省中一、中高评审条件.doc
- 贵州财经大学商务学院劳动和社会保障专业学生近几年就业调查方案设计.doc
- 贵阳工商局2014年使用版本公司章程.doc
- 贷款初审要点和电核技巧.doc
- 贾振华整理中华对联.doc
- 资料2010,只会写自己名字港大院士.doc
- 资格预审申请1.doc
- 资源和环境学院表彰大会主持人稿(草).doc
- 资金时间价值含义 (2).doc
- 赞美女性句子大全.doc
- 全过程工程管理造价咨询工程监理项目服务方案投标方案(技术部分).doc
- 招标代理服务投标技术服务方案(技术方案).doc
- AI大模型与AIGC技术在公安领域的应用解决方案(99页 PPT).pptx
- 工业4.0智能制造数字工厂规划方案.pptx
- 树立社会主义核心价值观.docx
- 三年(2023-2025)中考历史真题分类汇编(全国)专题21 科技文化与社会生活(解析版).docx
- 2025年中考道德与法治真题完全解读(吉林卷).pdf
- 2025年中考道德与法治真题完全解读(安徽卷).pdf
- 三年(2023-2025)中考历史真题分类汇编(全国)专题14 人民解放战争(解析版).pdf
- 三年(2023-2025)广东中考历史真题分类汇编:专题03 中国近代史(八年级上册)(解析版).docx
最近下载
- 胆囊结石伴急性胆囊炎护理查房.pptx VIP
- 阿法拉伐分油机中文说明Instruction book.pdf VIP
- 山东省青岛胶州市、黄岛区、平度区、李沧区2024-2025学年九年级化学第一学期期末学业水平测试试题.doc VIP
- 石灰石-石灰乳二段中和法处理矿山酸性废水.pdf VIP
- 商业航天-行业报告:商业航天方兴未艾,低轨卫星星座建设加速.pdf VIP
- 华帝家用供热水燃气快速热水器JSQ24-i12047-13 JSQ30-i12047-16 JSQ24-i12048-13 JSQ30-i12048-16说明书用户手册.pdf
- CECS 364-2014 建筑燃气安全应用技术导则.pdf VIP
- 胆囊结石伴胆囊炎病例讨论.pptx VIP
- 2023版《马原》统一课件:专题四 唯物史观.pptx VIP
- 四川长江担保集团有限公司及其子公司2025年第六批员工公开招聘的备考题库及参考答案详解一套.docx VIP
原创力文档

文档评论(0)