new的用法.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文档。上传文档
查看更多
new的用法

一new功能、用法、回收、及与指针的联系 数组从0开始在内存中开辟了4个int型的数据空间,即16个字节 利用 new 运算符可以在程序中动态开辟内存空间new int[4]; new 相当于一个函数,在内存开辟完空间后,返回这个空间的首地址,这时,这个地址必须用一个指针保存下来,才不会丢失。 Int *p P指向6(new 开辟的空间) P=new int *p=6 可以用*P对这个空间进行运算 同样利用new运算符可以开辟连续的多个空间(数组) P指向新开辟空间的首地址 Int n,* P; Cinn, P=new int [n]; For (int i=0;in;i++) Cinp[i]; 可以用P[i]的形式来引用新开辟的内存单元 注意:用new开辟的内存单元没有名字,指向其首地址的指针是引用其的唯一途径,若指针变量重新赋值,则用new开辟的内存单元就在内存中“丢失”了,别的程序也不能占用这段单元,直到重新开机为止。 用 new 运算符分配的空间,不能在分配空间时进行初始化。 同样,用new开辟的内存单元如果程序不“主动”收回,那么这段空间就一直存在,直到重新开机为止。 delete算符用来将动态分配到的内存空间归还给系统,使用格式为: delete p; int *point; point=new int;只有用new开辟的空间才能用delete收回。 ...... delete point; elete也可以收回用new开辟的连续的空间。 nt *point; cinn; point=new int[n]; ....... delete [ ]point; 求两程序中的大着 oid main(void ) { int *p1, *p2; p1=__new int p2=_new int cin*P1*P2____; if (*p2*p1) *p1=*p2; delete p2; cout“max=” __*P1__endl; delete p1;} 引用 、看程序、指针用法、引用区别: 类型 引用变量名 = 原变量名; 其中原变量名必须是一个已定义过的变量。如: int max ; int refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 引用类型变量的初始化值不能是一个常数。 如:int ref1 = 5; // 是错误的。 int ref=i; 引用在定义的时候要初始化 引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 nt a, *p; int m=a; 变量的引用 p=m;变量的地址 *p=10; 可以用动态分配的内存空间来初始化一个引用变量。 float reff = * new float ; //用new开辟一个空间,取一个别名reff reff= 200; //给空间赋值 cout reff ; //输出200 delete reff; //收回这个空间 这个空间只有别名,但程序可以引用到。 指针与引用的区别: 1、指针是通过地址间接访问某个变量,而引用是通过别名直接访问某个变量。 2、引用必须初始化,而一旦被初始化后不得再作为其它变量的别名。 当a的前面有类型符时(如int a),它必然是对引用的声明;如果前面无类型符(如couta),则是取变量的地址。 以下的声明是非法的 1、企图建立数组的引用 int a[9]; 2、企图建立指向引用的指针 int *p; 3、企图建立引用的引用 int px; 引用作为形参,实参是变量而不是地址,这与指针变量作形参不一样。 void change(int x, int y) { int t; t=x; x=y; y=z; } void main(void) { int a=3,b=5; change(a,b); //实参为变量 couta‘\t’bendl; } 指针变量做形参:void change(int *x, int *y) { int t; t=*x; *x=*y; *y=z; } void main(void) { int a=3,b=5; change(a,b); //实参为地址 couta‘\t’bendl; } 由于函数调用返回的引用类型是在函数运行结束后产生的,所以函数不能返回自动变量和形参。 返回的变量的引用,这

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档