指针 指针的引用 指针的指针.doc_第1页
指针 指针的引用 指针的指针.doc_第2页
指针 指针的引用 指针的指针.doc_第3页
指针 指针的引用 指针的指针.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c+中指针,指针的引用,指针的指针的区别看例子和结果:#includeusingnamespacestd;voidFreePtr1(int*ptr1)deleteptr1;ptr1=NULL;voidFreePtr2(int*&ptr2)deleteptr2;ptr2=NULL;voidFreePtr3(int*ptr3)delete*ptr3;*ptr3=NULL;voidmain()cout-endl;int*p1=newint;*p1=1;cout*p1=*p1endl;FreePtr1(p1);coutaftercallfreePtr1endl;if(p1!=NULL)coutp1isnotnullendl;cout*p1=(*p1)endl;cout-endl;int*p2=newint;*p2=2;cout*p2=*p2endl;FreePtr2(p2);coutaftercallfreePtr2endl;if(p2!=NULL)cout*p2=*p2endl;elsecoutthep2isnullendl;cout-endl;int*p3;p3=newint(3);cout*p3=*p3endl;FreePtr3(&p3);coutaftercallfreePtr3endl;if(p3!=NULL)cout*p3=*p3endl;elsecoutthep3isnullendl;cout-endl;system(pause);结果:comments:对p1指针:cout-endl;int *p1 = new int;*p1 = 1;cout*p1=*p1endl;/FreePtr1(p1);void FreePtr1(int* ptr1)delete ptr1;ptr1 = NULL;coutafter call freePtr1endl;if(p1 != NULL)coutp1 is not nullendl;cout*p1=(*p1)endl;cout-endl;而p2为:调用前:调用后:注意:函数的参数进行值拷贝,即使传的是指针,也的对指针(即指针里存的地址)的拷贝, 可不是指针里地址所指的值的拷贝啊!引用与指针的区别: 常常有人问引用与指针的区别,可能是指针和引用在功能上的相似,而是他们混淆这两个概念,现在总结以下二者的区别,希望大家能彻底弄清这两个概念根本性的差别: 引用,一个变量的别名,为什么引入别名呢?原因是我们想定义一个变量,他共享另一个变量的内存空间,使用别名无疑是一个好的选择。变量是什么?是一个内存空间的名字,如果我们给这个内存空间在起另外一个名字,那就是能够共享这个内存了,引用(别名)的由此而来。 指针,指向另一个内存空间的变量,我们可以通过它来索引另一个内存空间的内容,本身有自己的内存空间。二者区别:(1)引用访问一个变量是直接访问,而指针是间接访问。 (2)引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有自己的内存空间。 (3)引用在开始的时候就绑定到了一个内存空间(开始必须赋初值),所以他只能是这个内存空间的名字,而不能改成其他的,当然可以改变这个内存空间的值. 例如 int i = 3,j = 4; int &x = i;/成为i的别名 x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论