该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

C语言的运算功能十分丰富,运算种类远多于其它程序设计语言。因此,当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。

初学者往往对此感到非常困难,觉得C语言学习太繁杂,其实只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。

下面是所有的运算符按优先级不同分类列表:(对不起,因为表格显示不正常,已被我删除大家可以看书上的)

表中列出15种优先级的运算符,从高到低,优先级为1 ~ 15,最后边一栏是结合规则,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。

下面我们通过几个例子来说明:

(1) 3*20/4%10 这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算3 * 20=60,然后被4除,结果为15,最后是%(求余数)运算,所以表达式的最终结果为15%10 = 5

(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;

例子中的“;”是C语言的语句分隔符,执行顺序为从左到右,第1条语句执行后a的值为3,第2条语句执行后b的值为5,第3条语句中有两个运算符前置+ +和*,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值为20,最后执行第4条语句,由于a + +为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。

这个例子执行后,a的值为5,b的值为5,c的值为20,d的值也是20。

(3)a = 3,b = 5,b+ = a,c = b* 5

例子中的“,”是逗号结合运算,上式称为逗号表达式,自左向右结合,最后一个表达式的结果值就是逗号表达式的结果,所以上面的逗号表达式结果为40,a的值为3,b的值为8,c的值为40。

c语言如何使四种运算符同级,二 如何学习C语言的运算符和运算顺序相关推荐

  1. C语言 操作系统实验 四种调度(最高响应比优先算法 HRN)

    注: 本文是四个调度算法的第一篇算法. 本文是根据CSDN上某一FCFS调度算法魔改来的,所以FCFS的算法不会发到网站. 我是个菜鸡,发文是为了纪念自己完成了代码,以及累计自己的经验. 如有知识错误 ...

  2. 【零基础学Java】—final关键字与四种用法(二十九)

    [零基础学Java]-final关键字与四种用法(二十九) 一.final关键字 final关键字代表最终.不可改变的 常见的四种用法: 可以用来修饰一个类 可以用来修饰一个方法 可以用来修饰一个局部 ...

  3. PCL点云处理之计算点到空间直线距离的四种方法(二十三)

    PCL点云处理之计算点到空间直线距离的四种方法(二十三) 问题表述 方法1 方法2 方法3 方法4 全部代码(四个函数) 问题表述 给定空间一条直线的两个点或者给定直线上一点和直线方向向量 求直线外一 ...

  4. C语言有四种基本常量,第2章-C语言的基础知识.ppt

    第2章-C语言的基础知识.ppt 第二章 编制C程序的基础知识,本章重点内容 2.1 常量与变量 2.2 C语言的基本数据类型 2.3 C语言的常用运算符和表达式,运行程序,第二章 编制C程序的基础知 ...

  5. c语言中同级运算符的运算顺序,二 如何学习C语言的运算符和运算顺序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言的运算功能十分丰富,运算种类远多于其它程序设计语言.因此,当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则 ...

  6. 前辈学习C语言的四种方法,实际上不管学什么语言,都行之有效!

    如果新手要学习编程,一些学长学姐都会建议从Python.PHP.Java开始学. 不过,作为工作多年的一名程序员,我还是建议你从C语言开始,为什么这么说,我相信你以后会慢慢的明白. 那么,如何学习C语 ...

  7. java语言复制数组的四种方法

    来源于牛客网的一道选择题: Java语言的下面几种数组复制方法中,哪个效率最高? A.for循环逐一复制 B.System.arraycopy C.System.copyof D.使用clone方法 ...

  8. c语言符合运算符的运算顺序,二 如何学习C语言的运算符和运算顺序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言的运算功能十分丰富,运算种类远多于其它程序设计语言.因此,当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则 ...

  9. python语言是一种解释型、面向什么的程序设计语言_Python是一种面向项目的解释型设计语言...

    [多选题]Python语言的特点主要有 [单选题]按发酵工艺流程区分,发酵类型不包括() [其它]实验三 表的基本操作.doc [单选题]能够完成正实数x保留两位小数,千分位四舍五入的表达式是( ). ...

最新文章

  1. 能打造新型CPU的有机分子元件登Nature,用if语句攒出决策树,一个顶数千晶体管...
  2. 云炬WEB开发笔记2-5 chrome调试工具
  3. OpenCV霍夫直线houghlines点集的实例(附完整代码)
  4. geopy 在python中的使用
  5. ML/DL-复习笔记【四】- DeepLab系列模型总结
  6. 【CV】用于计算机视觉的 Transformer 高被引综述
  7. 主板开启网络唤醒_网络唤醒bios详细设置图文教程 | 专业网吧维护
  8. 类别不平衡问题之SMOTE算法(Python imblearn极简实现)
  9. 2019上半年个人成长复盘
  10. Calendar根据输入的年份和周数计算该周的开始日期和结束日期
  11. 微软sccm服务器,微软SCCM是什么?
  12. android手机存储空间猛增,实测安卓升级到鸿蒙,可用内存增加半个G,存储空间增加6个G...
  13. Annoying Present CodeForces - 1009C
  14. 《转》关于ath5k网卡驱动中beacon的发送过程(特别是timestamp字段)
  15. Linux权限drwxrwxrwx是什么意思?
  16. 第七章 本源时空
  17. 376招募线上被试 | 你对“中文句子”的记忆情况如何?
  18. seata-tcc简单使用
  19. cadence allegro 17.2中的正负片
  20. 【DP】AGC012 E Camel and Oases

热门文章

  1. 2.1 为什么要进行实例探究-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  2. SLAM-ch2-使用kdevelop创建helloWorld程序
  3. 解决HierarchyViewer不能连接真机的问题
  4. 转载:linux+arm 网卡故障调试:ethtoolphy寄存器读写
  5. 51系列中data,idata,xdata,pdata的区别[笔记]
  6. volatile的作用(转自于http://www.csdn.net/)——今天差点忘记了!
  7. 持续演进,克服“REST缺乏”
  8. ansible企业级自动化运维工具
  9. 移动支付漏洞大 没密码也能买买买
  10. Port Forwarding Port Triggering