在dev c++环境下c语言自加自减运算符使用分析

在dev c++环境下c语言自加自减运算符使用分析

ID:31363910

大小:108.00 KB

页数:6页

时间:2019-01-09

在dev c++环境下c语言自加自减运算符使用分析_第1页
在dev c++环境下c语言自加自减运算符使用分析_第2页
在dev c++环境下c语言自加自减运算符使用分析_第3页
在dev c++环境下c语言自加自减运算符使用分析_第4页
在dev c++环境下c语言自加自减运算符使用分析_第5页
资源描述:

《在dev c++环境下c语言自加自减运算符使用分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、在DEVC++环境下C语言自加自减运算符使用分析  摘要:针对C语言运算符使用规则,分析了在DEVC++环境下自加/自减运算符的使用方法和在复杂表达式中的求值情况分析,并针对问题给出了解决方案。  关键词:C语言;自增运算符;自减运算符  中图分类号:TP311文献标识码:A文章编号:1009-3044(2016)27-0248-02  Abstract:FortheClanguageoperatorsuserules,analysisoftheadd-self/sub-selfandevaluationintheanalysisofcomplexexpressionswithDEVC+

2、+,andthesolutionsweregiven.  Keywords:Clanguage;add-self;add-self  C语言是典型的结构化程序设计语言,在国内外得到了广泛的使用,也是各大学普遍开设的程序设计课程。在近年的教学过程中,大多借用C++的编辑环境编辑C程序,使用较多的有VisualC++,DEVC++等。在这些编辑环境下运行C程序,对于某些特定的操作,对不同的编译器可能会得到不同的运行结果。笔者发现,在C语言的运算符中,自加和自减运算符的使用非常灵活,是C语言的特色之一,但在使用过程中也比较容易出错。现就这两种运算符在DEVC++环境中的使用做一个详细的分析。 

3、 1自加/自减运算符的使用方法及运算对象6  自加自减运算符是C语言特有的单目运算符,只能和一个变量组成表达式,有前缀和后缀两种形式。前缀形式为:++操作数/--操作数,后缀形式为操作数++/操作数--。自加运算符可以使操作数的值增加1个单位,自减运算符可以使操作数的值减少1个单位。操作数只能是变量,不允许使用常量和表达式。比如i和j都是整型变量,使用i++,j++都是合法的,如果对常量3使用自加运算符即3++,则会使常量3的值增加1,这和常量在程序运行期间值不发生改变的定义相违背;而对表达式(i+2)使用自加运算符(i+2)++,则会使表达式(i+2)的值增加1,但是减少以后的值没有变

4、量可以存储,因此这两种使用方法都不合法。  2自加/自减运算符单独使用与在复合表达式中使用的区别  2.1自加/自减运算符单独使用  以自加运算为例,使用整型变量i作为操作数,在运算符单独使用的情况下,有i++;和++i;两种形式,不论是用前缀表示还是后缀表示,都可以使i的值增加1,当然也可以使用赋值语句i=i+1;实现。但是,对于多数C的编译程序,利用自加/自减运算使变量增加/减少1和使用赋值语句相比,生成代码的运行速度会快很多,目标代码的效率更高一些。因此从效率上分析,前两种形式的效率更高。  2.2自加/自减运算符在复合表达式中使用  同样以自加运算为例,使用整型变量i作为操作数,

5、分析运算符在复合表达式中的使用情况。  (1)i=3;y=i++;printf(“i=%d,y=%d”,i,j);  (2)i=3;y=++i;printf(“i=%d,y=%d”,i,j);6  在第一个程序段中,运行结果为i=4,y=3。说明在y=i++语句中,i先将增加前的值赋给y,在当前表达式计算完成之后才自己增加1,所以输出结果时,i的值是4,而y的值为3。  在第二个程序段中,运行结果为i=4,y=4。在y=++i语句中,i的值先增加1,再把增加后的值参与本表达式的运算,赋给y,所以i,y的值都为4。  通过以上两个程序段的分析,我们发现,当使用后缀表示时,变量i会先将自己的

6、值赋给y,再对自己加1,而使用前缀表示时,变量i先自己增加1,再将增加后的值赋给y。可以将这两种情况总结为“变量在前就先使用,变量在后就先加”。  3自加/自减运算符的优先级和结合方向  C语言规定,在表达式求值时,先看运算符的优先级,优先级高的先运算,对于同一优先级的运算符,则按照结合方向确定运算次序。自加/自减运算符是单目运算符,优先级仅次于括号等运算符,结合方向为自右向左。也就是说在出现多个同等级的运算符时,需要按照自右向左的方向运算。  比如表达式y=-i++,按照优先级分析,-和++运算符的优先级相同,赋值运算符优先级最低,因此先进行-和++运算,又因为他们的结合方向都是自右向

7、左,因此变量i应该先进行自加运算再进行负号运算。这样该表达式就等价于y=-(i++),如果i的初值为3,则y的值就为-3。注意,这里使用的是后缀表示,所以应该先使用i的值再自加,所以y的值不是-4。6  在另外一个表达式y=i+++j中,如果i的初值为3,j的初值为2,该表达式是按照y=(i++)+j计算,还是按照y=i+(++j)计算呢?如果单纯从优先级和结合方向考虑,自加运算符的优先级会高于加法运算符,应该先进行自加运算,但是自

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。