《C_语言与C++语言的几点比较.pdf》由会员分享,可在线阅读,更多相关《C_语言与C++语言的几点比较.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、语言是在语言的基础上继承发展起来的,因此两者有很多共同点。这两种语言运算符丰富,表达式使用灵活,利用这一点可以巧妙地处理许多在其他高级语言中难以处理的问题。比如自 增自减运算符(和),其作用是使变量的值增和减。()是前增(前减),其作用是在使用变量参与运算之前,先使的值加(减),然 后 再 参 与 运 算;()是 后 增(后 减),其 作 用是在先用变量原来的值参与运算,运算结束后再使变量的值加(减)。但很多人在使用时也不管其是在语言还是语 言中,不 加 区 分,造 成 很 多 误 用,实 际 上 这 两 种语言在自增自减等一些特殊运算符的使用上还是有明显区别的。一、实验实验、在编译系统(集成
2、环境)中输入语言源程序如下:“”(),;()()();(“,”,);经编译连接后,运行结果如下:,实验、在编译系统(集成环境)中输入语言源程序如下:“”(),;()()();(“,”,);(“,”,);经编译连接后,运行结果如下:,实验、在编译系统(集成环境)中输入语言源程序如下:“”(),;(“,”,()()(),);(“,”,);经编译连接后,运行结果如下:,实验、在集成开发环境中输入源程序如下:语言与 语言的几点比较胡云(无锡市广播电视大学,江苏无锡)第 卷第 期年月河南广播电视大学学报 ,摘要:语言是在语言的基础上发展起来的,两者运算符在数量和使用上基本相同,但也有细微差别。文章通过实
3、验分析两种语言中一些运算符在构成表达式时求值的不同,对于学习语言和语言有一定的帮助。关键词:语言;语言;比较中图分类号:文献标识码:文章编号:()收稿日期:作者简介:胡云(),男,无锡市广播电视大学信息工程系教师。?(),;()()();“”“,”“”;经编译连接后,运行结果如下:,实验、在集成开发环境中输入源程序如下:(),;()()();“”“,”“”;“”“,”“”“,”“”;经编译连接后,运行结果如下:,实验、在集成开发环境中输入源程序如下:(),;()()();“”“,”“”;经编译连接后,运行结果如下:,实验、在编译系统(集成环境)中 输入语言源程序如下:“”(),;(“理论值与实
4、际值不一致的情况如下:”);(;);(;);()();(!)(“”,);经编译连接后,运行结果如下:理论值与实际值不一致的情况如下:实验、在集成开发环境中输入源程序如下:(),;“理论值与实际值不一致的情况如下:”;(;);(;);();(!)()()“”()()“”();?经编译连接后,运行结果如下:理论值与实际值不一致的情况如下:二、实验结果分析比较实验 和实验,两个都是语言程序,两个实验结果之所以不同,主要是因为表达式()()()的求值在实验 中是放在函数之外的,而在实验 中是作为函数的参数。我们知道函数参数的执行顺序是从右到左,所以的输出值在实验 中为,而在实验 中为。再观察监控变量,
5、的值,也是不同的,在实验 中值都为,在实验 中分别 为。据此可以得出这样的结论:自增构成的表达式在函数之外和作为函数参数的求值 方 式 是 不 一 样 的。如果自增构成的表达式是作为函数参数,其求值顺序是从左到右依次进行的,也就是说在表达式中从左到右的个的值是不一样的;但如果是在函数之外求值,它先计数自增的次数累加到中得到最终的值,然后把这个值赋予表达式中的每一个,这样个的值都是相同的。比较实验 和实验,同样的算术运算表达式,运算结果不同,说明与在处理自增自减运算符构成的算术表达式时,其处理方法是有区别的。在语言中,变量的前增运算是在整个表达式一开始时最先进行的,在实验 中,变量的 值开始为,
6、经 过 表 达 式中 的次 前 增操作变成了,所以表达式最终的值为。在中,所有变量的前增操作不是在求解表达式一开始最先进行的,而是分步执行的。在实验 中对表达式()()()求值,根据运算符的优先级和结合性先求前两个()之和,所以先自增变成,这样表达式就相当于();下 一步在的基础 上再增,最后 求得表 达 式的 值为。综 合 实 验 实 验 实 验 和 实 验,我 们将实验 和实验 作为第一组,将实验 和 实验作为第二组,第一组是程序,第二组是程序。通过比较 我 们 发 现 在语 言 中,对 表 达 式()()()和()()()求值 的处理方式是相同的,但在语言中,对表达式()()()和()(
7、)()求值的处理方式是不同的。对表达 式()()()的求值上面已讨论过,下 面主要来讨论表达式()()()的求 值,该程序运行后,的结果分别为,所以对其求值的顺序是从左到右进行的。同样的语句,不同的处理环境得到的结果也是不一样的,所以虽然语言是在语言基 础上发展起来 的,继承了语言的很多特性,但毕竟是两种 不 同 的语言,在看似相同的地方还存在不少差异,这是我们在使用这两种语言应该注意的。比较实验 和实验,两个都是程序,两个程序相差的仅仅是一对括号,对于一般的加法运算没有任何影响,例如和()的结果是相同的,但对于较特殊的自增运算符而言就不同了。没加括号之前,先将自增两次之后的值作为前两个的值,
8、表达式等同于(),此时的值为。加了括号以后的表达式()()()求值发生了变化,在这个表达式中相加的 对 象有两个:()和()(),此时()()是一个 整 体,也 就 是 说根 据()先 自 增,然 后 来 看 后 面 的()()决定再自增几次,结果发现还要自增次,所以这时求得每一个()的值都是,所以最终表达式的值为。比较实验 和实验,我们发现无论是在程序,还是在程序,其实际运行结果和我们根据程序分析得到的结果不一样,其主要原因在于存在实型到整型数据类型的转换,导致结果出现了偏差。所以我们在编程时要尽量避免数据类型的随意转换,如必须要进行数据类型转换时一定要考虑其影响并采取相应的措施。而且在语言和语言环境中,其影响也是不一样的。三、结束语上面主要讨论了由语言和语言的自增运算符中的前自增所构成的表达式的求值以及括号对其影响,在实际应用中我们还会碰到后自增以及前自增和后自增相混合的表达式,对此我们要在掌握自增运算符运算特性的基础上仔细分析,保证应用的正确性,并可以推广到对自减运算符的分析,同时对程序中的数据类型转换要给予必要的注意。参考文献:唐金文语言中的自增和自减语句分析曲 靖师范学院学报,():张秉才语言中自增、自减运算使用的探索广东广播电视大学学报,():朱恩亮与处理自增自减运算表达式的区别 盐城工学院学报(自然科学版),():?