论文部分内容阅读
[摘要]C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效力高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点"这一双重性使它既能做系统描述语言,又是通用的程序设计语言,它是计算机应用人员应掌握的一种程序设计工具。对计算机C语言程序进行了简单探讨研究,希望能够对我们认识、了解和使用C语言程序有所帮助。
[关键词]C语言程序设计 难点分析 重点函数与指针
中图分类号:TP3文献标识码:A文章编号:1671-7597 (2008) 0220027-01
C语言是近年来国内外得到迅速推广使用的一种现代语言,C语言功能丰富,表达能力强,适合于编写系统软件和应用软件。对C语言程序设计进行进一步的学习和研究有助于我们更好地应用C语言程序,使之服务于我们的工作、学习和生活。
一、C语言及C语言程序设计概况
C语言是一种广泛流行的计算机高级语言,主要适合于系统描述语言,也经常用来写应用程序,C语言有一个最大的特点,就是其语法限制不太严格,程序设计自由度大。这一方面增强了其适用性,增大了其应用范围,另一方面也降低了其安全性,使得其安全难以得到叫好的保障。C语言作为一门程序设计语言,与其它程序设计语言有一定的相似性,但C语言又优于其它语言,其灵活性大,功能强,能编出任何不同类型的程序的特点,使得其广受学习者和应用者的欢迎。
二、C语言程序设计中需要注意的几个问题
C语言程序是计算机语言程序中的重要组成部分,也是应用比较多,且比较普遍的一种计算机语言程序,在应用C语言程序时仍需要注意以下的一些问题:
(一)C语言程序设计缓冲区的处理
在许多用C语言实现的应用程序中,都假定了缓冲区的长度是足够的,它的长度肯定大于要拷贝的字符串的长度"然而事实并不总是这样"当程序出错时或者当用户故意送入一个过长的字符串时,就会造成缓冲区溢出,过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的会引起死机!系统重新启动等后果。因而必须对其缓冲区的溢出问题进行处理。C语言不对数组进行边界检查,当向一个局部数组拷贝一个超过数组长度的字符串时,超过数组长度的那部分字符串将会覆盖与数组相邻的其他变量的空间"如果刚好数组与子程序的返回地址临近时,由于超出的一部分字符串覆盖了子程序的返回地址(RET),子程序执行完毕返回时,便有可能转向一个无法预料的地址,使程序流程发生错误,因而在程序设计时,必须对其进行边界检查。
(二)语言程序设计与面向对象设计的关系
C语言是结构化和模块化的语言,它是面向过程的即在结构化程序设计时,设计者必须细致地设计程序中的每一个细节,准确地考虑到程序运行时每一时刻发生的事情。面向对象的程序设计,即C++"C++保留了C的所有优点,还增加了面向对象的机制"C++是对C的增强,不仅从面向过程上,还为解决大型软件的设计问题提供了方便的设计方法"面向对象设计方法对C语言原有面向过程这一设计概念的补充,使C语言更能方便地解决许多难题"面向对象的程序设计方法是近年来十分流行的一种程序设计方法,它试图用客观世界中描述世界的方法来描述一个程序要解决的事情"它支持面向对象程序设计的几个要素(封装性!继承和派生性!重载性以及多态性)等。
三、C语言程序设计中的函数和指针
函数是一种有特定结构、能完成一定功能且相对封闭的可执行的代码段。函数的功能是由函数体的语句所决定的,函数的相对封闭性是指一个函数的代码是属于该函数专有的,函数是C语言的基本构件,任何一个C语言程序都是由一个或多个函数构成的(这其中必须有且只能有一个主函数)。指针是体现C语言灵活性的重要因素,指针同样是一个变量,只是它的内容是另一个变量的内存地址,可以通过赋值使指针变量的内容等于某个数据变量的内存地址,也可通过指针变量的值访问到数据变量。函数体现了C语言的结构性,指针体现了C语言的灵活性,两者通过指针函数和函数指针实现结合。C语言规定,函数的类型必须是单值型,而不能是结构类型的数据,指针变量的值是存储某数据类型的内存地址,是一个单一的值,所以函数可以返回一个内存地址,此时的函数即为指针函数。每一个函数都是一段代码,函数的代码在内存中是连续存储的,内存中存储一个函数代码所占有的存储单元的首地址就是该函数的执行入口地址,而每个函数的函数名就是该函数入口地址。在程序中调用函数时必须得到该函数的入口地址,所以需要通过函数名这个地址量来传递入口地址,这样的指针就称为函数指针。
四、语言程序设计中调用汇编语言程序的处理
C语言程序设计中调用汇编语言程序的处理规则一般是:在程序中使用关键字“EXTERN”对函数显示说明,用于建立C语言与汇编子程序的接口;函数名不超过8个字符,并在函数名下划线;参数传递的顺序是按其在参表中顺序的反顺序进栈的;参数按值传递;在汇编过程中,必须要有对代码段的说明部分;汇编程序取C程序的参数;汇编程序对寄存器的保护等等。
C语言程序是计算机语言程序中的重要组成部分,由于其具有灵活适用性广的特点而得到了广泛的应用,但其安全性不高的缺点也需要我们继续加强研究以便进一步克服,实现C语程序的进一步良性健康发展。
参考文献:
[1]黄伟焕,《C程序设计中的常见语句结构的逻辑隐患及分析》,载《温州职业技术学院学报》2003.6.
[2]黄玉庆,《C语言程序调用汇编语言子程序》,载《福建电脑》2002,5.
[3]谢伟增,李瑾:《C语言程序设计中的重点:函数与指针》,载《河南广播电视大学学报》2003.12.
[4]邱建林 顾 晖:《面对C语言程序设计》,载《内蒙古农业大学学报(社会科学版)》2003,3.
[5]冯运仿,《C程序设计中缓冲区溢出问题》,载《黄石高等专科学校学报》2002.6.
[6]陈慧杰,《C语言功能函数在程序设计中的应用》,载《昭乌达蒙族师专学报》2002.12.
[关键词]C语言程序设计 难点分析 重点函数与指针
中图分类号:TP3文献标识码:A文章编号:1671-7597 (2008) 0220027-01
C语言是近年来国内外得到迅速推广使用的一种现代语言,C语言功能丰富,表达能力强,适合于编写系统软件和应用软件。对C语言程序设计进行进一步的学习和研究有助于我们更好地应用C语言程序,使之服务于我们的工作、学习和生活。
一、C语言及C语言程序设计概况
C语言是一种广泛流行的计算机高级语言,主要适合于系统描述语言,也经常用来写应用程序,C语言有一个最大的特点,就是其语法限制不太严格,程序设计自由度大。这一方面增强了其适用性,增大了其应用范围,另一方面也降低了其安全性,使得其安全难以得到叫好的保障。C语言作为一门程序设计语言,与其它程序设计语言有一定的相似性,但C语言又优于其它语言,其灵活性大,功能强,能编出任何不同类型的程序的特点,使得其广受学习者和应用者的欢迎。
二、C语言程序设计中需要注意的几个问题
C语言程序是计算机语言程序中的重要组成部分,也是应用比较多,且比较普遍的一种计算机语言程序,在应用C语言程序时仍需要注意以下的一些问题:
(一)C语言程序设计缓冲区的处理
在许多用C语言实现的应用程序中,都假定了缓冲区的长度是足够的,它的长度肯定大于要拷贝的字符串的长度"然而事实并不总是这样"当程序出错时或者当用户故意送入一个过长的字符串时,就会造成缓冲区溢出,过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的会引起死机!系统重新启动等后果。因而必须对其缓冲区的溢出问题进行处理。C语言不对数组进行边界检查,当向一个局部数组拷贝一个超过数组长度的字符串时,超过数组长度的那部分字符串将会覆盖与数组相邻的其他变量的空间"如果刚好数组与子程序的返回地址临近时,由于超出的一部分字符串覆盖了子程序的返回地址(RET),子程序执行完毕返回时,便有可能转向一个无法预料的地址,使程序流程发生错误,因而在程序设计时,必须对其进行边界检查。
(二)语言程序设计与面向对象设计的关系
C语言是结构化和模块化的语言,它是面向过程的即在结构化程序设计时,设计者必须细致地设计程序中的每一个细节,准确地考虑到程序运行时每一时刻发生的事情。面向对象的程序设计,即C++"C++保留了C的所有优点,还增加了面向对象的机制"C++是对C的增强,不仅从面向过程上,还为解决大型软件的设计问题提供了方便的设计方法"面向对象设计方法对C语言原有面向过程这一设计概念的补充,使C语言更能方便地解决许多难题"面向对象的程序设计方法是近年来十分流行的一种程序设计方法,它试图用客观世界中描述世界的方法来描述一个程序要解决的事情"它支持面向对象程序设计的几个要素(封装性!继承和派生性!重载性以及多态性)等。
三、C语言程序设计中的函数和指针
函数是一种有特定结构、能完成一定功能且相对封闭的可执行的代码段。函数的功能是由函数体的语句所决定的,函数的相对封闭性是指一个函数的代码是属于该函数专有的,函数是C语言的基本构件,任何一个C语言程序都是由一个或多个函数构成的(这其中必须有且只能有一个主函数)。指针是体现C语言灵活性的重要因素,指针同样是一个变量,只是它的内容是另一个变量的内存地址,可以通过赋值使指针变量的内容等于某个数据变量的内存地址,也可通过指针变量的值访问到数据变量。函数体现了C语言的结构性,指针体现了C语言的灵活性,两者通过指针函数和函数指针实现结合。C语言规定,函数的类型必须是单值型,而不能是结构类型的数据,指针变量的值是存储某数据类型的内存地址,是一个单一的值,所以函数可以返回一个内存地址,此时的函数即为指针函数。每一个函数都是一段代码,函数的代码在内存中是连续存储的,内存中存储一个函数代码所占有的存储单元的首地址就是该函数的执行入口地址,而每个函数的函数名就是该函数入口地址。在程序中调用函数时必须得到该函数的入口地址,所以需要通过函数名这个地址量来传递入口地址,这样的指针就称为函数指针。
四、语言程序设计中调用汇编语言程序的处理
C语言程序设计中调用汇编语言程序的处理规则一般是:在程序中使用关键字“EXTERN”对函数显示说明,用于建立C语言与汇编子程序的接口;函数名不超过8个字符,并在函数名下划线;参数传递的顺序是按其在参表中顺序的反顺序进栈的;参数按值传递;在汇编过程中,必须要有对代码段的说明部分;汇编程序取C程序的参数;汇编程序对寄存器的保护等等。
C语言程序是计算机语言程序中的重要组成部分,由于其具有灵活适用性广的特点而得到了广泛的应用,但其安全性不高的缺点也需要我们继续加强研究以便进一步克服,实现C语程序的进一步良性健康发展。
参考文献:
[1]黄伟焕,《C程序设计中的常见语句结构的逻辑隐患及分析》,载《温州职业技术学院学报》2003.6.
[2]黄玉庆,《C语言程序调用汇编语言子程序》,载《福建电脑》2002,5.
[3]谢伟增,李瑾:《C语言程序设计中的重点:函数与指针》,载《河南广播电视大学学报》2003.12.
[4]邱建林 顾 晖:《面对C语言程序设计》,载《内蒙古农业大学学报(社会科学版)》2003,3.
[5]冯运仿,《C程序设计中缓冲区溢出问题》,载《黄石高等专科学校学报》2002.6.
[6]陈慧杰,《C语言功能函数在程序设计中的应用》,载《昭乌达蒙族师专学报》2002.12.