好吧,表示被C语言的表达式语句坑的跟狗一样,或者是因为C那种松散的语言特性。这种特性有时候能带来更大的编程自由度,有时让人很无奈
。
有这么一个表达式:int i = 7;printf("%d\n",i++*i++);这个printf语句输出的结果是什么?49,擦,为毛不是56?自增运算符++,他的作用是使表达式的值自增1,i++与++i的区别在于:i++是表达式的值是原来i的值,做完运算之后i的值加1,而++i的值为i的值加1,做完运算之后i的值加1。那这样的话,不管从哪个顺序算这个表达式的值,似乎应该是56才对。在吉林大学康辉老师的讲解中:编译器在对自增或者是自减的表达式求值时,编译器总是按照前缀先处理然后处理后缀,然后处理前,所有表达式i的初值都为最开始对i的赋值。按照这个说法,上面的printf语句输出的结果应该为49而不是56。这样,似乎这个问题就解决了。但是,只北的东西总要有点与众不同的。考虑一下这个表达式:int i = 3;printf("%d\n",i++*++i+i--*--i);按照上面的求解方式,嗯,先考虑++i,和--i,i初值都是3,那么++i=4,--i=2,i++=3,i--=3,那么表达式的值应该为:3*4+3*2=18,嗯,用vc6.0验证一下,结果如下:
这操蛋的结果,怎么是25了?!!!这不科学。好吧,翻了一下steve summit的《你必须知道的495个C语言问题》。其中是这么解释的:尽管后缀自增和后缀自减操作符在输出其旧值之后才会执行运算,但是这里的“之后”的含义和准确的定义常常被误解。无法保证自增或自减会在放弃变量原值之后和对表达式的其他部分进行计算之前立即进行,只能保证变量的更新会在表达式“完成”之前的某个时刻进行(按照ansi c术语,在下一个“序列点”(序列点:是一个时间点,所有的副作用都以确保结束)之前)。这种被称之为:“未定义”的。好吧,写到这里,我也不知道到底怎么才能有效且正确的算出类似于上面两个表达式的值。简单来说,这些表达式的值可能要依赖于编译器在进行自增或自减操作时的解释规则。在你完全弄清楚你的编译器是怎么解释这些表达式,或者是你要写一个具有较高可移植性的程序前,不要试图编写类似上面那样操蛋的表达式。
- 大小: 12.6 KB
分享到:
相关推荐
【《从拴象说开去》阅读及答案】从拴象说开去阅读答案.docx
从流程优化的一个经典表格说开去.doc
由深圳地铁4A标段施工说开去.pptx
智能传媒的发展及展望是一个涉及机器人新闻、人工智能、大数据、信息流等多个领域的议题。机器人新闻,即借助于计算机程序来自动编写新闻报道的技术,它通过特定算法处理数据,生成新闻文本,从而大大提高了新闻生产...
《从流程优化的一个经典格说开去》这篇文章深入探讨了企业流程优化的重要性和具体方法。流程优化是提升企业效率和竞争力的关键,它涉及到对现有工作流程的细致分析和改进。 文章提到,流程优化首先要深入了解实际...
### AMT咨询观点之:从流程优化的一个经典表格说开去 #### 一、引言 随着企业竞争环境的日益激烈以及市场需求的不断变化,流程优化成为提升企业竞争力的重要手段之一。AMT咨询在此篇文章中提出了一个核心观点:...
《玻纤行业系列分析报告之三:从最新数据说开去,对玻纤行业需求的再验证》 玻璃纤维(简称“玻纤”)作为一种重要的无机非金属材料,广泛应用于建筑、汽车、电子电气、风能、航空航天等多个领域。本报告主要针对玻...
睹乔木而思故家考文献而爱旧邦由先父冯永轩藏墨说开去冯天瑜.doc
05 白话容器基础(一):从进程说开去.pdf
在Android系统的发展历程中,内存管理一直是个关键话题。Android 5.0(Lollipop)的发布标志着系统在优化资源利用、提升效率方面的一个重要里程碑。这个版本开始,Google引入了多项内存管理优化,使得系统能够在低...
在2021年2月20日的中金公司行业分析报告中,对酒类食品饮料行业中的啤酒市场进行了深入的分析和预测,特别是以福建市场作为全国啤酒市场演化趋势的前瞻参考。报告指出,福建市场因为其优越的地理位置和较大的市场...
苏教版九年级上五单元作文:从国土资源说开去.docx
紧接着,我详细介绍了容器技术圈在过去五年里的“风云变幻”,而通过这部分内容,我希望你能理解这样一个道理:05 | 白话容器基础(一):从进程说开去容器本身没有价
专题资料
当教育变得单一,只针对部分或少数学生时,就会失去广泛吸引力,无法满足大多数学生的需求。 其次,应试教育的问题在于过度强调分数,导致学生对知识本身失去了热情。那些在课堂上打盹、分心或者对学习无感的学生,...
中美医疗订阅服务行业比较:从Teladoc和平安好医生说开去-0427-中信建投-25页.pdf
在现实生活中,我们需要像狼和狈一样,了解自己的长处和短处,以便找到合适的合作伙伴。自我认知是合作的基础,只有清楚地知道自己的优势和不足,才能有效地与他人互补,形成强大的团队。那些忽视自我评估,固执己见...
《由马云正传说开去》这篇文档主要讲述了马云——阿里巴巴集团创始人、淘宝网与支付宝的创造者、余额宝之父的传奇人生。马云的成长经历、创业精神以及他对梦想的执着追求,为我们提供了深刻的启示。 首先,马云的...