C语言指针在数据结构中的妙用.docVIP

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

C语言指针在数据结构中的妙用   摘要: 指针既是C语言的特点,也是C语言的重点和难点。用得好,可以简化、优化程序;用不好,不但程序出错,还可能影响整个计算机系统的运行。从四个方面提出了C语言指针在数据结构中的巧妙使用,从而增强模块功能、提高程序的时间和空间性能、提高了模块的安全性、可靠性和独立性。   Abstract: Pointer is not only the characteristic of C language, but also the stress and difficult point. Good use of pointer can simplify and optimize procedures, on the contrary, bad use of pointer may cause procedure error, even affect the running of whole computer system. Ingenious use of pointer is raised from four aspects in the data structure, which can enhance the module function, improve time and space performance of software, and increase the security, reliability and independence of modules.   关键词: 指针;时间性能;空间性能;模块独立性   Key words: pointer;time performance;space performance;module independence    中图分类号:TP393文献标识码:A 文章编号:1006-4311(2011)13-0160-02   0 引言   多年来,C语言因其语言简洁紧凑、功能强大、使用方便灵活而受到广泛青睐。C语言作为一门高级语言,它又能直接对物理地址进行访问,兼有高级语言和低级语言的双重功能。C语言对物理地址进行访问的主要方式就是通过指针。指针是一种特殊的数据类型,指针变量存储目标变量的存储地址,通过指针变量可以直接访问对象存储空间。   指针既是C语言的特点,也是C语言的难点。用得好,可以简化、优化程序;用不好,不但程序出错,还可能影响整个系统的运行。下面从四个方面介绍C语言指针在数据结构中的巧妙使用。   1 通过指针带回在函数中改变了的数据   有些函数需要将在函数中改变了的数据带回主调函数,这时就必须通过指针实现这一功能。例如,删除顺序表中第i个数据元素的函数DelList()。   #define OK 1   #define ERROR 0   #define MAXSIZE 100   typedef struct   { ElemType elem[MAXSIZE];    int last;   } SeqList;   int DelList(SeqList *L, int i, ElemType *e)   { int k;   if((iL-last+1)) { printf(″删除位置不合法!″); return(ERROR);}   *e=L-elem[i-1];   for(k=i; klast; k++)   L-elem[k-1]=L-elem[k];   L-last--;   return(OK);   }   在函数DelList()中,指针L将主调函数中待处理的线性表带给DelList(),函数调用结束又将在函数中改变了的线性表带回主调函数。   2 通过指针克服一个函数只能带回一个值的限制   一个函数只一个返回值,可是,实际中常常碰到需要将两个或两个以上的值带回主调函数,解决这一问题的方法就是通过函数值带回一个值,使用指针作为参数带回其它值,从而克服这一限制,增强函数功能。例如,在上面的函数DelList()中,函数值表示删除成功与否,指针参数e将被删除的数据元素值带回主调函数。   3 通过使用指针变量作函数参数提高模块的时间性能和空间性能   下面的Locate1()函数是在顺序表中查找值等于e的元素并返回其序号,变量L所需的存储空间与原线性表所占空间大小相等,参数传递时所需时间与线性表的长度成正比。   int Locate1(SeqList L,ElemType e)   { i=0 ;   while ((i=L.last)(L.elem[i]!=e) ) i++;   if (i=L.last) return(i);

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档