- 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语音指针在文件中的应用文献综述
专业:计算机科学与技术 班级:1班 作者:宋果榕 指导老师:雷学锋
【前言】
指针功能强大,使用灵活。若根据指针变量指向的对象不同,把指针按类型划分。能提高指针使用的准确性,使编写的程序精炼而高效。
c语言具有高级语言和低级语言的双重特性。可移植性强,适合开发各种类型的软件系统.同时,c语言也是学习程序设计、数据结构和编译原理等课程的基础,是学生进一步深造的敲门砖,各高校对c语言的教学也越来越重视.用C语言编写的程序中可以运用指针有效表示复杂的数据结构,动态分配存储空间,方便地引用字符串和数组,在函数调用中获得多个返回值,并且可以直接处理内存地址等等.正确而灵活的运用指针可使程序简洁、明快,大大提高程序的灵活性和运行速度.但是由于指针太过灵活,一旦使用不当,不仅错误难查。而且会出现意想不到的错误.因此,要编出正确而高效的程序,必须正确的理解和使用指针。
指针是C语言的一个重要概念,在C语言中被广泛的使用,它和数组、字符串、函数间数据传递有着密不可分的联系。在某些场合,指针是运算得以解决的唯一途径,它可以有效的表示和实现复杂的数据结构。正确掌握指针的应用,可以使程序简洁、紧凑、高效。由于指针的概念比较复杂,使用比较灵活,所以初学时常会出现错误,而一般教材中讲述指针相关内容是从语法和用法着手,并没有对实际程序中的错误进行分析。因此对于初学者,有必要根据实际程序对指针的相关概念和使用时常见的一些错误进行分析。
【主题】
1.对指针的理解
计算枧中内存单元的地址又称为指针,存放指针的变量称为指针变量,内存单元中存放的数据即为内存变量的值.首先耍弄清指针变量与指针的指向变量的区别:指针变量存放的是指向变量的地址,而指向变量存放的是数据.
例1:int*P,x=100;
P。x:/*错误*/
这是初学者常犯的一种错误。他们没有弄清指针的概念,实际上P应该接收一个int型对象地址值,如:P=x
2.指针类型的定义与使用
2.1普通指针
普通指针变量是用来存储普通变量、结构体变量或者某一存储空间单元地址的变量,是最简单,使用频率最高的一种形式,其定义格式是:类型名t指针变量名m31。指针变量只能存储相同类型的某地址,而且指针变量一当定义,就一定要给它赋初值,若没有需要赋的值就采用赋空值(NULL),否则会使指针悬空,存在很大的安全隐患。比如:int x,a[2];char y;intp;定义了四个变量,指针变量P只可以有P=x;p=a;p=a[0];P=a[1];四种赋初值方式,如果写成p=a[2]-语句,就会因为所赋的初值越界而出错。普通指针在对数组操作时,在赋初值和进行自增、自减运算均不能超过存储空间的范围,否则指针就指向不可预知的单元而出错。要是写成p--y;语句,也会因为数据类型不匹配而出错。如果一定要对不同类型的指针变量赋值,需要把字符类型的y变量做强制性转换p=(int)y;才行。普通指针在对数组或连续存储空间进行自增、自减运算操作时,也要保证指针值不能越界。
2.2数组指针
数组指针是指向数组的指针变量,通常用来指向二维数组中某行存储单元的起始地址,也就是我们常说的行指针旧扭。定义的格式是:类型名(*指针变量名)[一维数组元素个数]【1】,比如int a如int(2)[4],(*p)[4];指针变量p只能有p=a;p=a[o];p=a[l];p=a+1;四种赋初值方式。如果写成p=a[o];p—a+1;语句就出错,原因是二维数组有两种指针,一种是行指针,指向数组的纵向,一种是列指针,指向数组中横向。数组指针是行地址,不能赋列地址。还有就是数组指针容易与指针数组混淆,如int a[2][4],*p[2];语句,数组指针p只能有p=a[0].p=a[1];两种赋值方式,如写成p=a;会因为p与a的基类型不同而出错。【2】
2.3函数指针
函数指针是指向函数起始地址(或者函数入口地址)的指针,定义格式是:类型名(·指针变量名)();{【3】,如有int fl(int x),f2(int y);int(丰p)O;语句,函数指针变量P可以先后被f1、f2赋值,如p=f1;p=f2;就能用函数指针变量p来访问两个不同的f1,f2函数,以提高程序的灵活性和通用性。需要特别注意的是函数是一个整体,函数指针不能进行自加、自减运算,这与其他指针变量不同。
2.4指向指针的指针
指向指针的指针就是指向双重地址的指针。在普通指针定义格式的指针变量名前再加上一个奉,需要经过两次地址访问{2}。如int**p1,*p2,x=3:通过p2=x;pl=p2;i藏J个赋值语句后,要访问变量x。只能先访问p2,再通过p2访问x。这好比
文档评论(0)