1. 在不同的运行环境下,自增自减运算是有细微差别的,这里仅说明vc环境中的情况。

2. 一般情况下,自增自减的扫描顺序是从左到右。对于前增减(++i),是以一个运算符为单位进行增减;而后增减(i++)则是以整个表达式为单位最后统一增减。     例1:i=3;b=(++i)+(++i)+(++i);结果b=16。 分析:首先扫描求解前半部分,即(++i)+(++i)的值(先对i进行两次自增运算,i的值变为5,再计算i+i的值为5+5=10),然后再求解后半部分,即10+(++i)的值(先对变量i自增1次,i的值变为6,再计算10+6=16)。     例2:i=1;b=(i++)+(++i)+(++i);结果b=7。 分析:先对第一个加法运算符两端的运算对象处理,先自增一次再求解表达式前两项(2+2=4),然后再对i自增一次再求前一步骤的值(4)与最后一项(++i=3)的和4+3=7。

例3:i=1;a=i++,b=i+1;结果a=1,b=3。

分析:i++是以整个表达式为单位增减的,而不是以语句为单位。逗号表达式前的a=i++已经是一个表达式,所以不会是b=2。

3. 在函数中作为实参时情况又有所不同。其扫描顺序为自右向左。不过运算优先级仍存在。以printf()为例:     例4:x=3;printf("%d,%d",++x,++x);结果5,4。     例5:y=8,x=9;printf("%d,%d\n",(++x,y--),++x);结果8,11。 分析:Printf()中为自右向左算,但括号()的优先级在++、--和,之前。

例6:x=2;printf("%d,%d\n",(x++,x++,x++),x++);结果6,5。

分析:结果很奇怪吧!我第一次碰到时也晕了,在实验后才发现。做实参时在()内如果只有一个表达式,那么其优先级是和没有()时是一样的。此题中的计算顺序为1,2,4,3。即现计算()内的第一个x++,再计算第二个x++,计算完后此时()内只有一个表达式,暂不计算他,而是遵循自右向左的扫描顺序跳转去计算优先级高的第四个x++,最后再去计算第三个x++。

小结:printf()中++x是现加现用,x++是所有的用后再加。printf()之外则是++x从左向右第一个运算符左右两边先都加上再以最大值计算依次向右推进。x++则是所有的x先不加,计算完后再加。

PS:(++x)这种作++x看;(x++)同x++。

转载:http://blog.163.com/wang_351/blog/static/908400472009226155228/

转载于:https://www.cnblogs.com/l289123557/p/3532178.html

关于自增、自减运算(vc++6.0)相关推荐

  1. C语言经典实例:1-10例:三角求和、显示所占字节数、自增自减运算while语句输出最小值、计算快递费用、学生成绩统计

    文章目录 C语言经典实例:1-10例:三角求和.显示所占字节数.自增自减运算while语句输出最小值.计算快递费用.学生成绩统计等 1.程序的编写工具 2.项目的创建 3.C语言经典实例1-10编写的 ...

  2. C语言自增自减运算辨析

    文章出自个人博客https://knightyun.github.io/2018/04/10/c-self-plus,转载请申明 c语言中,自增(++)和自减(–)运算是很有c语言"感觉&q ...

  3. C语言自增自减运算、判断奇偶数、三角形面积

    C语言程序案例之二 问题引入 自增和自减运算 判断奇偶数 输入三个数,判断是否为三角形,如是,则计算三角形的面积 问题引入 1.实现++和--的输出 2.判断奇偶数 3.输入三边,判断是否构成三角形并 ...

  4. c语言math未定义,C语言中自增自减表达式的未定义行为

    摘 要:自增自减运算符是C语言的一个特色,本文通过表达式中对一个变量进行多次自增或自减运算时产生的未定义行为进行了详细介绍,望帮助大家正确使用自增自减运算符. 关键词:C:自增自减运算符:未定义行为 ...

  5. c语言自增自减5运算符详解,巧用C语言中的自增自减运算符

    黄建琼 摘要:自增自减运算符在C语言的编程过程中经常用到,具有重要的作用,而灵活使用自增自减运算符则是个难点.该文从几个例子入手,观察运行的结果,对结果进行分析,最后得出结论.以期能使初学者避重就轻, ...

  6. 李洋疯狂C语言之关于自增自减遇到的一些问题

    今天讲到自增的时候,遇到个难点,单个的自增自减运算还是挺简单的,但是如果是多个自增自减,就会变得比较麻烦,在windows环境和Linux环境中也会得到不一样的结果,windows中比较简单,他会将所 ...

  7. c语言中自增自减运算符,C语言中自增自减运算符的深入剖析

    C语言中自增自减运算符的深入剖析 李文广 李俊荣 赵妍 . (1.沧州职业技术学院,2沧州工贸学校) [摘要]本文从多方面对自增自减运算符分析.讲解,以便让初学者 能够清晰自增自减运算符的运算规律,学 ...

  8. 学透Java自增(++)自减(--)运算符,看这一篇就够了!

    三句重中之重的重点: 1.无论是前缀形式还是后缀形式,自增自减运算符的优先级要高于赋值运算符. 2.当一条语句中仅有++或--操作时,前缀形式与后缀形式的运算符没有任何区别. 3.前缀形式的运算规则可 ...

  9. C++ 的算术、自增自减、位运算、关系与逻辑运算符(数据的操作)

    一:前提知识 1 )运算符: 运算符包含了运算法则.优先级和结合性: 运算符优先级: 单目 > 算术 > (左移.右移) > 关系 > (按位与.异或.或) > 逻辑 & ...

  10. 增一赋值运算 减一赋值运算

    C语言提供了两种非常有用的运算符就是增一和减一运算符 增一运算符是用两个加号来表示的 增一运算的作用使参与运算的值增加一个单位 增一和减一运算符都是一元运算,只需要一个操作数 它既可以作为前缀运算符, ...

最新文章

  1. Flutter 网络请求库http
  2. 关于Ubuntu使用笔记
  3. 【codevs1282】约瑟夫问题,卡数据ing?
  4. 华为 MateBook 14 Linux 版真机:搭载深度 Linux 系统
  5. Elasticsearch节点类型
  6. 最新SCI影响因子发布!Nature屠榜,AI领域Top 1000期刊盘点
  7. 刷脸支付打造了一个无卡交易的时代
  8. 软件开发生命周期的五个阶段
  9. 树莓派4B点亮LED小灯
  10. 老实人的摸索与反思——写在高考七年后
  11. 空格符号复制html,cf空格符号复制(cf空格代码)
  12. Work Stealing
  13. python蓝牙连接测试_基于python实现蓝牙通信代码实例
  14. 初步认识C语言中的选择和循环语句
  15. 梯度下降与随机梯度下降
  16. color model(颜色模型/色彩模型)
  17. Get Request
  18. 【ROS小车8】_小车硬件组成
  19. 电脑端用火狐浏览器访问wap站点
  20. 一元线性回归分析的R语言实现(RStudio)

热门文章

  1. Playing Atari with Deep Reinforcement Learning 中文 讲解
  2. 降维系列之 LTSA 局部切空间排列
  3. oracle删除导入库,oracle数据库删除和导入方法
  4. Posta:跨文档信息安全搜索工具
  5. DS_Store文件泄漏
  6. cas 4.0 mysql 验证_在Ja-sig CAS中使用MySQL数据库进行身份验证
  7. ucla计算机科学和数学专业,UCLA的CS「加州大学洛杉矶分校计算机科学系」
  8. 数字的格式化c语言课程设计,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  9. 论财务自由与【生活-工作】平衡
  10. Ubuntu18.04中安装virtualenv和virtualenvwrapper