满意答案

dtexoy

2014.03.14

采纳率:48%    等级:9

已帮助:113人

结合性是规定运算符与运算数组合成表达式的结合方向。因为运算符是有优先级别的,表达式的运算应该是先按运算符的优先级由高到低的顺序,结合运算数进行计算,当遇到同级别运算符或者是符号一样但运算目数不同时,就要用到运算符的结合性。

例如:X=-B+C 或 X=A-B+C与X=A-B*C两个表达式计算时是这样的

对于X=-B+C,表达式运算时是这样的,先数据栈读入X,符号栈读入=(赋值运算符),因为=是双目运算符,还要读入数据,所以继续向后读表达式;又读到-号,不是数据,而且-号的运算级别高于=号,所以-号进入符号栈,继续向后读表达式,读到数据B进入数据栈,这时候-B就符合负号运算符的自右向左结合的单目运算,就进行求值运算,符号栈中-号出栈,与数据栈中B结合成-B,-B就变为一个新的运算数据进入数据栈;后面继续读入+号,它是双目运算符后面还要读入一个运算数据,C就读入了数据栈,后面没有运算符再读入,表达式结束,那么就进行符号栈+号和数据栈中C和-B的值相加,将结果存入数据栈中,符号栈中+出栈;符号栈中还有=号,它和数据栈中的结果与X形成赋值的自右向左双目结合运算,表达式的结果就此运算完毕。

对于X=A-B+C与X=A-B*C两个表达式计算时,前面X=A-B过程是相同的,只是后面,由于*号比+号的运算级别高,所以表达式X=A-B*C中要先算B*C的结果,在一步一步回退进行A-和X=的运算。而表达式X=A-B+C中+号与-同级别,所以当满足运算条件时就先进行A-B运算,然后进行+C和X=的运算。

不知道以上的说明,是否能让你明白C语言中运算符结合性和表达式求值的过程。

00分享举报

C语言中单目运算符的结合方向是,C语言运算符的结合性相关推荐

  1. C语言单目运算符和双目运算符、三目运算符

    C语言中运算符分为单目,双目和三目 顾名思义,就是运算符的操作数的个数 单目就是一个操作数,比如++,a++,操作数只有一个a 双目就是两个操作数,最熟悉的就是+,a+b,计算a.b的和 三目就是三个 ...

  2. c语言条件运算符的作用,条件运算符的用法_C运算符的结合方向

    JAVA语言 形式关系表达式 ? 表达式1 : 表达式2 求值规则 求解关系表达式,根据关系表达式的布尔值决定取值:关系表达式的值为true时取表达式1的值:关系表达式的值为false时取表达式2的值 ...

  3. c语言二目运算符. -

    c语言二目运算符. ->

  4. 【C语言运算符大全】快速学会C语言运算符

    目    录(本篇字数:2120) 介绍 运算符分类 算术运算符 逻辑运算符 关系运算符 位运算符 赋值运算符 经典问题:a = 5,b = 8,如何交换两个变量的值? 介绍 说到运算符,从小我们就学 ...

  5. c语言的44种运算符,C语言重要知识点总结【9】:C语言运算符(详解)

    目录 一.前言 二.运算符分类 三.运算符的优先级 四.常用运算符 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 赋值运算符 5. 条件运算符 6. 逗号运算符 7. 强制类型转换运算符 ...

  6. c语言的运算符优先级文档下载,c语言运算符优先级

    c语言运算符优先级Tag内容描述: 1.运算符的优先级与结合律(从高到低排列)=优先级 名称 符号 结合性 1 数组下标 左结合性 1 函数调用 () 左结合性 1 结构和联合的成员. - 左结合性 ...

  7. c语言中赋值的时候顿号的作用,C语言运算符及其优先级汇总表口诀

    在看一些字符串问题的时候,经常出现这样的语句, *tmp++ = *p;比如tmp和p是指向数组元素的指针,那么这个语句的执行顺序是怎样的呢?正确的理解是*tmp,将*p赋给*tmp后tmp++.但是 ...

  8. c语言的运算符优先级文档下载,C语言运算符优先级汇总口诀表

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

  9. c语言分量运算符举例,第2章C语言基础-运算符及其表达式摘要.ppt

    第2章C语言基础-运算符及其表达式摘要 * * * C语言程序设计 C语言程序设计 模仿练习 #include void main() { int n1=10; float n2=3.7; char ...

最新文章

  1. linux sh for ls,Linux shell for while 循环
  2. NBT:MaPS-seq测序方法揭示肠道微生物空间分布
  3. 进程注入后门工具Cymothoa
  4. catia过载属性使用方法_catia简明操作手册
  5. Hdu 1312 Red and Black
  6. Bootstrap 学习之js插件(模态框(Modal)插件)
  7. LiveVideoStackCon 2020北京站-售票通道关闭倒计时1天
  8. springboot 读取配置文件_使用 @ConfigurationProperties 在 Spring Boot 中加载配置
  9. PMP试题 | 每日一练,快速提分 8.5
  10. C语言程序——标准输出格式
  11. ISDA发布亚洲衍生品调查报告
  12. Grub4Dos 学习笔记
  13. Nagios③:文件初探
  14. 解决Cipher Suites导致的“未能创建 SSL/TLS 安全通道”异常问题
  15. 山区建小学(递推,区间dp)
  16. 《2023游戏行业热点趋势报告》|Party Game游戏成为新趋势,备受消费者瞩目
  17. javascript弹出一个弹窗
  18. BlenderGIS 使用总结
  19. 【JAVA 文件概述】
  20. 【51】PWM控制使用

热门文章

  1. 密码篇——对称加密—DES
  2. 虚拟键码 键盘消息(初稿)
  3. [保护模式]段间跳转和跨段跳转
  4. 13. PDE_PTE属性
  5. 2、MySQL备份类型
  6. 1.12 Java空对象(null)是怎么回事?
  7. 1.10 Iterator(迭代器)遍历集合元素
  8. 【PAT乙级】1032 挖掘机技术哪家强 (20 分)
  9. 第一章:递推与递归 【完结】
  10. C语言易错题集 第四部