- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言指针的研究
C语言指针的研究
[摘要]指针是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语言的一个重要组成部分,正确灵活地使用指针,能帮助我们解决许多实际问题。概括的来说,主要有:①指向单变量的指针变量作为函数参数,可以得到多个变化了的值,即函数调用可以而且只可以得到一个返回值,而运用指针变量参数,就可以得到多个变化了的值。②指向数组元素的指针变量处理数组,可以大大提高执行效率,
原创力文档


文档评论(0)