C语言编程技术的分析研究
2016-10-31邱吉
邱吉
摘要:C语言是一种新型的语言,可能对于我们来说是一种符号的堆积,但是对于电脑来说,就一种命令性的交流,这也是实现人与机器的一种交流与沟通的结果,C语言的灵活运用就可以解决许多的复杂问题,使得更多的复杂的算术以及数学问题得以快速的解决,大大地提高运算的效率以及运算的范围,可以解决生活上许多事情,具有非常好的使用价值,但是语言的严谨性以及复杂性往往会使得使用者出现问题,且语言问题出现后的解决也是复杂的,调试的时间往往会比编程的时间更久,因此下文便主要从这个方面来进行探讨,使得C语言可以变得更为便利。
关键词:C语言;编程技术;分析研究
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)22-0074-02
C语言是一种作为信息科学产物下的新型的学科与发展方向,因为自从电脑被发明出现的时候,科学家就一直在尝试电脑帮助人们来解决一些复杂啊的程序化问题,例如记忆、选择等等很多方面,而C语言就是一种电脑与人类的一种沟通,C语言是现代科技产物下的一种高级程序设计语言,其有着很强的逻辑性与模块程序化,层次分明利于调试,且简洁、条例清晰且可应用功能强大,因此逐渐得到了广泛的应用,但是对于C语言的初学者学习来说因其特性与其语法限制,会出现很多的问题,没有经验以及良好的习惯,就无法得到正确的结果以及想要的目的,下文就针对C语言的变成技术进行探讨与分析,希望可以对学习者有一定的帮助。
1 C语言各类运算与技术分析概述
C语言创始于1967年,其语言非常的复杂,且其不同于人的大脑的思考,需要很多的定义与规则才可以实现真正的运算,得到人们想要的结果,在运算符号上除了一般的加减乘除以外还有判断符号等等,有各种各样的数值类型,并且有指针、地址、字节大小等等各类的名称。在数据类型上分为:整形、字符型、浮点型、指针型等等10余种,还有常量与变量的区分,还引入新的字符串概念,以及一系列的新的关键字,来代表不同的语句,例如:if、do、while等条件语句;char、case、register等数值类型;short、float等字符串长度等等。C语言对于软件发展有很大的贡献,为人们的生活带来更多的便利。
2 混合运算
C语言中一定会有很多的数学运算,而这些包括数值型的数据的输入与处理,例如整数、浮点数等等。在军训混合运算时可能会出现一些问题,例如输入数据溢出可计算范围,或者输入数据不符合程序原定规定时,程序会出现错误,且程序在运算时也会自动的对数值进行数值类型的转换,因此编程时会出现错误,为了将这种情况避免并保证程序的运转的正常,在编程时需要对数值进行定义,并对数据的转换有一定的提前说明与重新定义,因为电脑毕竟不是人类的大脑可以自动进行兑换,因此这就需要在运算时将不同类型的数据转换为同一类型,然后才能够进行正常的运算过程。
在C语言中会有两种情况需要对转换进行定义:其一是在使用者未进行定义时系统进行自动的转换,例如在对6+2.2进行运算时,6为整数,而2.2为浮点数,这在电脑看来是两种完全不一样的数据,无法进行统一的运算,因此电脑会自动地将6变成6.0这样的同数值的数据与2.2进行运算。而另一种情况为用户强制的进行定义,在编程程序中由创作者对其进行定义,例如在对3+2.14进行运算时,用户将2.14定义为只运算整数部分,于是就会编程为3+(int)2.14,这样2.14在电脑看来就是整数2,因此运算的结果为5。
在电脑的运算过程思维中是这样定义的,如果两个运算的符号两端的数值是不同类型的,那么就会先将等号右侧的部分进行先运算,之后结果是按照等号左侧的数值类型进行转换。例如:在signed int m=453333;short n;n=m;此语句中,就是将m的数值先传输给n,但是n在定义时却是short类型,且最高位是符号位,因此n此处变为负数,因此最终n的值为-1。
在C语言中会有很多的规定,因为电脑毕竟不似人脑的灵活,因此需要很多的规则来使得很多中可能不会出现困难与障碍,也使得C语言有更多的运算容纳量,在数据类型上会有很多的先后顺序,在运算上也有先后顺序,有从左至右的,也有从右至左的,学习者应注意其异同点,不要混淆,多加练习才能够熟练掌握。
3 指针运算
指针是C语言中一个较为重要的数据类型,也是在复杂的运算中常常会使用的一种方便的运算类型,且其可以有效地节省编程的空间,但是指针又往往是使用者会使用错误的一种运算方式,且错误的隐蔽性比较强,一般不易检查出来,需要使用者好好地学习与练习才可以掌握的一种较为复杂的运算。
指针运算一般分为动态分配与静态分配两种模式。静态分配主要是指C语言编程时已经确定了存储的空间,例如在对全局变量进行运算时,语句为static char b[size],那么在对于b的数据进行运算时就已经控制了为size 大小的空间来储存数据,对于局部变量也是一样的情况,例如语句 char c[size],那么在进行对于c局部的变化时,其空间也只有size 字节的大小,但是在使用完后,程序会自动的释放局部变量的空间。而动态分配则是在储存的空间大小是不确定的,会根据数值的输入与需要来进行大小的调配,例如语句malloc(size),是指会在库函数中分配size个字节的连续的空间,在调用此空间结束后会返回一个只想分配好的储存的空间的指针,但是需要注意的是在使用完该存储空间后需要使用free()来释放此空间,因为动态分配不会自动的在使用完后将空间释放。
4 程序优化
对于一个程序员来说,C语言的运用是非常灵活的,而初学者可能只是对其能够运行且正确就是目标,但作为一个程序员来说,如何运用最简便的方式,以及最少的空间来完成该结果才是最终目标,而C语言中一些程序的使用可以达到优化程序的目的,下面简要介绍几种:
4.1 Register语句使用
Register语句可以使得变量在操作时不占用存储的空间,因其运算是在CPU的寄存器中操作的,且CPU的运算会比存储内存的运算速度快很多,一般会对一些会重复使用很多遍的变量定义为register变量类型,这样在多次循环中可以使得整个运算变快,但是其数量也要控制,因为CPU中寄存器的数量是有限的,因此把握这个度是程序员需要掌握的经验。
4.2循环体内优化
循环体是一般复杂程序中不可缺少的一部分,因为会重复进行使用,因此优化循环体内部,会使得内存与运算速度都会有很大的提升,系统在执行一个函数的运算时,都需要保存以及恢复当前的情况,进行一个进栈与出栈的过程,如果循环体中有很多次的调用函数,系统就会有很大的负担,一旦函数较为复杂,那么就会导致系统的瘫痪,因此优化是一个优秀的程序员需要具备的品质,例如可以适当的采用宏定义(# define),其本身不是函数,但却可以用作函数;也可以在多重循环中将最长的循环放在内层,有效地减少CPU跨循环的使用次数,可以加快运算效率。
5 结束语
通过本文的叙述可以看出,C语言可以有效地在许多计算领域提供帮助,复杂的运算或是循环的筛选都可以很快地实现,使得很多的问题都可以有效的借助计算机来实现,大大地增加了效率以及准确度,为人们的生活带来很多的便利,但是C语言编程本身还需要程序员的更多的掌握以及熟练的运用才可以更好的使得C语言为工程以及各种方面的应用带来便利,这个技术需要程序员多积累、多实践才能够真正的掌握,愿在不久的将来,会有更多的优秀程序员为社会的发展作出更多的贡献。
参考文献:
[1] 段煅. C语言编程技巧在C语言学习中的应用[J].电脑编程技巧与维护,2010(20).
[2] 余勍,王捷. 浅谈C语言编程技巧在C语言学习中的应用[J].信息通信,2013(7).
[3] 包敬海,韦美兰. 汇编和C混合编程的研究[J].电脑与电信,2011(1).