论文部分内容阅读
[摘要]指针是C语言的精华,抛开指针的C语言是没有生命力的。我们认为深入理解指针的本质含义,对指针进行理性分析和研究将有助于我们进一步加深对C语言程序编程的认识和应用。
[关键词]C语言 指针 指针用法
中图分类号:TP3文献标识码:A 文章编号:1671-7597 (2008) 0120030-01
一、C语言指针概况
在计算机中,所有的数据及程序都是存放在存储器中的,一般把存储器中的一个字节空间称为一个内存单元,为了正确地访问这些内存单元,必须为每个内存单元编上号,根据内存单元的编号即可准确地找到该内存单元,内存单元的编号称为地址,根据内存单元的地址就可以找到所需要的内存单元,通常也把这个地址称为指针。指针的作用是可以通过指针去访问内存单元。根据指针所指的量的不同,指针可以分类为:①指向简单变量的指针。即指向一个简单变量,存放这个简单变量地址。②数组指针:指向一个数组的首地址,即数组首元素的地址。③字符指针:指向一个字符数组的首地址。④指向指针的指针:指向的是指针的地址。⑤指向函数的指针:指向函数的首地址,即函数的入口地址。⑥指向结构变量的指针:指向结构变量的首地址。⑦指向文件的指针:C语言对文件的操作并不是直接通过文件名进行的,而是根据文件名生成一个文件指针,通过该指针来对文件进行操作。C语言中,允许用一个变量来存放指针,这种变量称为指针变量,一个指针变量的值就是某个内存单元的地址或称为内存单元的指针。指针变量在内容上包括以下三个方面:①变量。高级语言中数据及其对应的存储空间被抽象为变量,每个变量都有一个名字!这个名字称为变量名,变量名代表了某个存储空间及其所存储的数据。②数据类型。数据既是程序的组成部分又是程序处理的对象语言规定程序中使用的每个数据都应该属于一种确定的数据类型,数据类型显式或隐式地规定了在程序执行期间变量或表达式所有可能的取值范围!以及在这些值上允许进行的操作。③指针变量。指针变量是一种特殊的变量。 指针变量具有普通变量的属性!有变量名$变量类型和变量值的概念。但指针变量又不同于普通变量!它的特殊性具体表现在:指针变量的值是地址;指针变量类型是指针变量所指向的存储空间的类型。
二、C语言指针中的两个概念区分
(一)数组指针和指针数组。指向数组的指针称为数组指针,数组的特点是数组中每个元素类型相同,且在内存中连续存放,只要数组指针向一个成员,则可顺次推算出其余成员的地址,因此通过数组指针可将数组中的所有元素间接访问;指针数组是指一组类型相同的指针组成的数组,其与数组指针最大的不同是,指针数组在指针的数量上有所改变,它由一个指针演变到一组同类指针。
(二)指针函数与函数指针。指针函数是返回值为指针的函数,指针函数打破了其它高级语言中的指针、数组不能作为返回值的局限,体现了C语言程序的灵活性。值得注意的是,若使用变量的地址作为函数的返回值,此地址所对应的变量空间如果被释放,其中的数据可能发生了变化,那么就不能达到正常的传送数据的目的,另外在使用指针函数时,接受函数值的变量也必须为指针,且应与返回值的类型相同。指针变量可以指向整型变量、字符串变量、也可以指向函数的入口地址和指针为函数指针。函数指针是一个高深的概念,函数指针的作用是函数间传递函数,指针函数与函数指针的相似之处在于两者都跟函数有关,不同之处在于指针函数中的指针指向函数出口,而函数指针中的指针指向函数入口,二者指向方向的差异是两者间的最大区别。
三、C语言指针使用中不当行为的危害性
C语言的指针为我们提供了极其强大的功能。但是,由于C语言对程序格式要求特别宽,这就会导致其安全性不高,在使用中不可避免的要出现一些问题。而C语言中的数组却不做越界检查,而是接着访问相邻的地址中的信息。也就是说,在C语言中,即使使用不当,也不给出错误信息, 却会-将错就错。地执行下去。所以在使用C语言编程,特别是使用指针时要特别小心,否则,可能会得到一个-莫名其妙。的结果,有时甚至会出现系统死机,不能正常结束的现象。C语言中的指针使用起来有这么大的危险,但C语言的指针为我们所提供的优点是远远大于它的缺点的,在使用C语言的指针的时候只要注意上面提到的问题即可扬其长而避其短。
四、C语言指针应用的优点
指针是C语言的一个重要概念,也是C语言的一个重要组成部分,正确灵活地使用指针,能帮助我们解决许多实际问题。概括的来说,主要有:①指向单变量的指针变量作为函数参数,可以得到多个变化了的值,即函数调用可以而且只可以得到一个返回值,而运用指针变量参数,就可以得到多个变化了的值。②指向数组元素的指针变量处理数组,可以大大提高执行效率,所以指针使用熟练时,尽量使用指针处理数组;③指向字符串的指针变量构成指针数组处理多个字符串时可以节省内存空间,还可以提高程序的执行效率;④指向结构体变量的指针作函数参数,可以节省时间和空间,提高执行效率;⑤指向FILE类型结构体的指针变量,可以找到与之相关的文件,从而实现对文件的访问;⑥指向函数的指针作函数参数,可以使一个通用函数实现各种专用功能。
指针是C语言中十分重要的一个概念,是C语言的灵魂、精华与根本所在。本文对指针的有关概念进行了介绍和区分,对指针使用不当的危害性进行了描述,并对其应用的有点进行了总结,希望能对我们进一步认识和研究C语言指针有所帮助。
参考文献:
[1]张丽霞,《C语言指针详解》,载《赤峰学院学报(自然科学版)》2005年10月。
[2]余建宝,《C语言指针探究》,载《科技经济市场》2006年8月。
[3]温娟娟,《C语言中指针的探讨》,载《河南职业技术师范学院学报》2003年9月。
[4]陈宝平,催滢荣,《C指针用法分析》,载《内蒙古经济管理干部学院学报(季刊)》,2000年9月。
[5]康牧,赵治国,《浅谈C语言中指针使用不当的危险性》,载《洛阳师专学报》,2000年4月。
[6]李素萍,《C语言指针的应用》,载《中国科技信息》2005年第21期。
[7]丁辉,《深入理解C语言指针》,载《内江科技》2005年第6期。
[关键词]C语言 指针 指针用法
中图分类号:TP3文献标识码:A 文章编号:1671-7597 (2008) 0120030-01
一、C语言指针概况
在计算机中,所有的数据及程序都是存放在存储器中的,一般把存储器中的一个字节空间称为一个内存单元,为了正确地访问这些内存单元,必须为每个内存单元编上号,根据内存单元的编号即可准确地找到该内存单元,内存单元的编号称为地址,根据内存单元的地址就可以找到所需要的内存单元,通常也把这个地址称为指针。指针的作用是可以通过指针去访问内存单元。根据指针所指的量的不同,指针可以分类为:①指向简单变量的指针。即指向一个简单变量,存放这个简单变量地址。②数组指针:指向一个数组的首地址,即数组首元素的地址。③字符指针:指向一个字符数组的首地址。④指向指针的指针:指向的是指针的地址。⑤指向函数的指针:指向函数的首地址,即函数的入口地址。⑥指向结构变量的指针:指向结构变量的首地址。⑦指向文件的指针:C语言对文件的操作并不是直接通过文件名进行的,而是根据文件名生成一个文件指针,通过该指针来对文件进行操作。C语言中,允许用一个变量来存放指针,这种变量称为指针变量,一个指针变量的值就是某个内存单元的地址或称为内存单元的指针。指针变量在内容上包括以下三个方面:①变量。高级语言中数据及其对应的存储空间被抽象为变量,每个变量都有一个名字!这个名字称为变量名,变量名代表了某个存储空间及其所存储的数据。②数据类型。数据既是程序的组成部分又是程序处理的对象语言规定程序中使用的每个数据都应该属于一种确定的数据类型,数据类型显式或隐式地规定了在程序执行期间变量或表达式所有可能的取值范围!以及在这些值上允许进行的操作。③指针变量。指针变量是一种特殊的变量。 指针变量具有普通变量的属性!有变量名$变量类型和变量值的概念。但指针变量又不同于普通变量!它的特殊性具体表现在:指针变量的值是地址;指针变量类型是指针变量所指向的存储空间的类型。
二、C语言指针中的两个概念区分
(一)数组指针和指针数组。指向数组的指针称为数组指针,数组的特点是数组中每个元素类型相同,且在内存中连续存放,只要数组指针向一个成员,则可顺次推算出其余成员的地址,因此通过数组指针可将数组中的所有元素间接访问;指针数组是指一组类型相同的指针组成的数组,其与数组指针最大的不同是,指针数组在指针的数量上有所改变,它由一个指针演变到一组同类指针。
(二)指针函数与函数指针。指针函数是返回值为指针的函数,指针函数打破了其它高级语言中的指针、数组不能作为返回值的局限,体现了C语言程序的灵活性。值得注意的是,若使用变量的地址作为函数的返回值,此地址所对应的变量空间如果被释放,其中的数据可能发生了变化,那么就不能达到正常的传送数据的目的,另外在使用指针函数时,接受函数值的变量也必须为指针,且应与返回值的类型相同。指针变量可以指向整型变量、字符串变量、也可以指向函数的入口地址和指针为函数指针。函数指针是一个高深的概念,函数指针的作用是函数间传递函数,指针函数与函数指针的相似之处在于两者都跟函数有关,不同之处在于指针函数中的指针指向函数出口,而函数指针中的指针指向函数入口,二者指向方向的差异是两者间的最大区别。
三、C语言指针使用中不当行为的危害性
C语言的指针为我们提供了极其强大的功能。但是,由于C语言对程序格式要求特别宽,这就会导致其安全性不高,在使用中不可避免的要出现一些问题。而C语言中的数组却不做越界检查,而是接着访问相邻的地址中的信息。也就是说,在C语言中,即使使用不当,也不给出错误信息, 却会-将错就错。地执行下去。所以在使用C语言编程,特别是使用指针时要特别小心,否则,可能会得到一个-莫名其妙。的结果,有时甚至会出现系统死机,不能正常结束的现象。C语言中的指针使用起来有这么大的危险,但C语言的指针为我们所提供的优点是远远大于它的缺点的,在使用C语言的指针的时候只要注意上面提到的问题即可扬其长而避其短。
四、C语言指针应用的优点
指针是C语言的一个重要概念,也是C语言的一个重要组成部分,正确灵活地使用指针,能帮助我们解决许多实际问题。概括的来说,主要有:①指向单变量的指针变量作为函数参数,可以得到多个变化了的值,即函数调用可以而且只可以得到一个返回值,而运用指针变量参数,就可以得到多个变化了的值。②指向数组元素的指针变量处理数组,可以大大提高执行效率,所以指针使用熟练时,尽量使用指针处理数组;③指向字符串的指针变量构成指针数组处理多个字符串时可以节省内存空间,还可以提高程序的执行效率;④指向结构体变量的指针作函数参数,可以节省时间和空间,提高执行效率;⑤指向FILE类型结构体的指针变量,可以找到与之相关的文件,从而实现对文件的访问;⑥指向函数的指针作函数参数,可以使一个通用函数实现各种专用功能。
指针是C语言中十分重要的一个概念,是C语言的灵魂、精华与根本所在。本文对指针的有关概念进行了介绍和区分,对指针使用不当的危害性进行了描述,并对其应用的有点进行了总结,希望能对我们进一步认识和研究C语言指针有所帮助。
参考文献:
[1]张丽霞,《C语言指针详解》,载《赤峰学院学报(自然科学版)》2005年10月。
[2]余建宝,《C语言指针探究》,载《科技经济市场》2006年8月。
[3]温娟娟,《C语言中指针的探讨》,载《河南职业技术师范学院学报》2003年9月。
[4]陈宝平,催滢荣,《C指针用法分析》,载《内蒙古经济管理干部学院学报(季刊)》,2000年9月。
[5]康牧,赵治国,《浅谈C语言中指针使用不当的危险性》,载《洛阳师专学报》,2000年4月。
[6]李素萍,《C语言指针的应用》,载《中国科技信息》2005年第21期。
[7]丁辉,《深入理解C语言指针》,载《内江科技》2005年第6期。