网站大量收购独家精品文档,联系QQ:2885784924

面向对象程序设计语言.pptVIP

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

01040203在程序运行时,不仅数据要占用内存空间,程序的代码也被调入内存并占据一定的内存空间。每一个函数都有函数名,实际上,这个函数名就是该函数的代码在内存的起始地址。当调用一个函数时,编译系统就是根据函数名找到函数代码的首地址,从而执行这段代码。由此看来,函数的调用形式:函数名(参数表),其实质就是:函数代码首地址(参数表)。函数指针:就是指向某个函数的指针,它是专门用于存放该函数代码首地址的指针变量。一旦定义了某个函数指针,那么,它就与函数名有同样的作用,在程序中就可以象使用函数名一样,通过指向该函数的指针来调用该函数。指向函数的指针函数指针的定义语法形式如下:其中:数据类型为函数指针所指函数的返回值类型;形参表则列出了该指针所指函数的形参类型和个数。函数指针名与*外面的圆括号()是必须的,如果去掉圆括号,将被解释为函数的返回值为指针。数据类型(*函数指针名)(形参表);函数指针在使用之前也要进行赋值,使指针指向一个已经存在的函数代码的起始地址。语法形式为:函数指针名=函数名;调用函数指针指向的函数有如下两种格式:函数指针名(实参表);(*函数指针名)(实参表);例如:intadd(inta,intb);//定义函数int(*fptr)(inta,intb);//定义函数指针fptr=add;//函数指针赋值虽然三种调用形式的结果完全相同,当用指向函数的指针调用函数add()时,习惯上使用?(*fptr)(1,2),因为这种形式能更直观地说明是用指向函数的指针来调用函数。(1,2);r(1,2);说明:采用下列任何一种形式调用函数add:*fptr)(1,2);多重指针如果已经定义了一个指针类型,我们再定义一个指针,用于指向已经定义的指针变量,后面定义的指针变量就是一个指向指针的指针变量,简称指向指针的指针,这样的指针也称二重(级)指针。三重及以上的指针统称为多重指针。例如:int**pp;定义了一个二级指针变量,等效于下列定义方式:typedefint*P;P*p;例:inta,*p,**pp;p=a;pp=p; 动态存储分配和释放存储空间**注意:这里是以字节计算的单元数目void* malloc(size_tsize);void free(void*pMemory);C的做法char*p=(char*)malloc(100);strcpy(p,”HelloWorld!”);free(p);例如:C++的做法**使用运算符new和delete使用形式 type是一个数据类型名,p是该类型的指针变量,new的作用就是从堆空间中分配一块与type类型的数据一样大小的内存(如果分配失败,new返回一个空指针),该内存地址被存于指针p中。一旦不想再使用,可以用delete来释放该内存空间。type*p;p=newtype;deletep;举例**int*p;0101020304p=newint;p=50;deletep;020304几点注意**使用new申请的内存空间是没有名字的,只能通过指针间接访问它们。用delete释放的内存空间必须是由new分配的空间,否则执行delete时将会导致严重的错误。例如:int*p;deletep;//出错int*p,value;p=value;deletep;//出错new和delete的典型用法**动态分配和释放单个数据的存储区#includeiostream.hvoidmain(){ int*p;p=newint; if(p==NULL){ cout“Allocationfailure!\n”; }else{ *p=15; cout*p; deletep; }}pp15用new运算符初始化单个数据的存储区**是用小括号将初始值括起来。初始值可以是常量、变量、以及表达式。type*p;P=newtype(初始值);……deletep;几点说明:语法为:举例#includeiostream.hvoidmain(){ int*p; p=newint(100); if(p==NULL){ cout“Allocationfailure!\n”; }else{ cout*p; deletep; }}//如果p

文档评论(0)

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

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

1亿VIP精品文档

相关文档