1.问题描述:

#include<stdio.h>
int main()
{int i=3;printf("%d %d %d %d %d",i++,++i,++i,i++,--i);
}

2.问题的解决方案

2.1DEVC++运行结果


在DEVC++中printf()结和自增自减运算符时遵循:

1.从后往前运算
2.前置++或- -打印的是最终结果,后置++和- -打印的是参数当前值

  • 1.我们看程序,最后一个参数是- -i,此时i变成了2,是前置运算打印最后i的值,先不管,往前推一个参数
  • 2.倒数第二个参数是i++,是后置运算,打印i当前值2,由于后置运算时先运算再自增或自减,所以此时变成了3
  • 3.再往前推一个参数++i,前置运算,打印最终结果,此时i变成4。
  • 4.再往前推一个参数还是++i,前置运算,打印最终结果,此时i变成了5
  • 6.再往前推一个参数,是i++,打印当前i的值为5,此时i的值变为6
  • 7.i的最终值为6,把所有前置运算符的参数换成最终结果就得到最终答案

2.2CLion的运算结果


Clion编译器的运算方案是从左往右,依次运算输出,所以最终结果是和devc++结果不同

3.总结

我们可以看到不同编译器对于printf()与自增自减运算符结和的结果不同,所以我们有的时候不用死磕这些,我们只需要知道:

1.printf函数在C语言中的运算顺序是自右向左
2.前置自增与自减是先自增或自减再参与运算,后置自增或自减是先参与运算再进行自增或自减

关于printf()与自增自减运算符结和问题相关推荐

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

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

  2. C语言连续自动自加怎么表示,为什么不建议在C语言中连续使用自增自减运算符...

    相信很多coder在学习C语言(包括C++)的过程中都听说过这样的建议:慎用自增自减运算符. 这是因为,在函数参数或者表达式中多次调用自增自减运算符很可能产生"不可预知的结果".究 ...

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

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

  4. c语言:自增自减运算符的操作详解

    博主在回忆c语言的基本知识时,突然发现自增自减运算符(--.++)这个知识点有些模糊不清,故博主为了给同为小白的同学们提供一些经验,特写下这篇文章. 首先,自增自减运算符共有两种操作方式. 比如,我先 ...

  5. //1.13 自增自减运算符(++,--)

    //1.13 自增自减运算符(++,--) #include<stdio.h>   int main(){ int i=8; printf("%d\n",++i); p ...

  6. C语言——赋值运算符、复合的赋值运算符、自增自减运算符、逗号运算符、条件运算符、goto语句、注释

    目录 一.赋值运算符 二.复合的赋值运算符 三.自增自减运算符 四.逗号运算符 逗号表达式的语法 五.条件运算符 六.goto语句 七.注释 一.赋值运算符 语法: - int a; - a = 5; ...

  7. c语言ll和 amp amp 优先级,关于C语言自增自减运算符的灵活使用.pdf

    DOI:10.3969/j.issn.1001-8972.2012.24.035 {int m=2,n: n=fun(m,++m): l?rintf("%d",n):} int f ...

  8. C语言系列之自增自减运算符的用法(二)

    运算符中最难理解的有自增自减运算符的使用方法,下面我将简单总结一下他们的使用方法 我们知道,C语言运行是由右向左运行的 下面我们来看一个例子 当i等于3的时候 j=++i; 由上面可知,C语言是由右向 ...

  9. c语言3u减1,C语言的自增自减运算符及应用

    在C语言中,经常使用自增自减运算符.本文结合实例,对C语言中自增自减运算符的应用技巧进行了分析. 维普资讯 http://doc.xuehai.net J u a fAn a gT a h r olg ...

最新文章

  1. JAVA环境变量的配置
  2. 【Kafka】Kafka-分区数-备份数-如何设置-怎么确定-怎么修改
  3. Npm的配置管理及设置代理
  4. Requirejs定义模块
  5. 宗宁:全面解析微博财报数据爆发下的平台机会
  6. Android -ui控件
  7. stm32l0的停止模式怎么唤醒_「正点原子STM32Mini板资料连载」第十九章 待机唤醒实验...
  8. 建筑电气工程设计常用图形和文字符号_怎么看懂建筑电气工程图?用最直白方式,教你基础识图!超级详细...
  9. 给入门程序员20条编程经验
  10. TextBoxWatermarkExtender扩展器与RequiredFieldValidator控件相冲突的解决方案
  11. 《Linux高性能服务器编程》——2.4 IP路由
  12. 安卓最好的浏览器_今日软件 | AI一键抠图、隐私保护工具、全能下载器、安卓启动器、茄子快传、迅雷、批量字符替换、傲游浏览器、全局负一屏...
  13. 安庆师范大学计算机学院书记,安庆师范大学计算机与信息学院导师教师师资介绍简介-施赵媛...
  14. 淘淘商城简介——淘淘商城(一)
  15. Redis实战pdf
  16. Android5.1打开Emmagee显示错误
  17. 通过docker搭建Yapi
  18. HC-05蓝牙模块连接测试
  19. 如何搭建一个自己图床网站
  20. 计算机中的越界英文怎么说,计算机与网络英语词汇(T4)

热门文章

  1. 网易云信 — 陪你打怪让你飞!
  2. Django 应用程序 + 模型 + 基本数据访问
  3. Java 内部类示例
  4. 企业选择做网站托管服务的几大因素
  5. 4.Nginx配置进阶(四)
  6. 子弹射中敌人播放爆炸并销毁的动画效果
  7. SQL读取树型所有下级或所有上级
  8. 缓存nginx服务器的静态文件
  9. MySQL优化 之 Discuz论坛优化
  10. RhinoMock入门(3)——4种Mock类型