指针 指针的引用 指针的指针.doc

上传人:hs****ma 文档编号:559867057 上传时间:2024-01-09 格式:DOC 页数:5 大小:272.51KB
返回 下载 相关 举报
指针 指针的引用 指针的指针.doc_第1页
第1页 / 共5页
指针 指针的引用 指针的指针.doc_第2页
第2页 / 共5页
指针 指针的引用 指针的指针.doc_第3页
第3页 / 共5页
指针 指针的引用 指针的指针.doc_第4页
第4页 / 共5页
指针 指针的引用 指针的指针.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《指针 指针的引用 指针的指针.doc》由会员分享,可在线阅读,更多相关《指针 指针的引用 指针的指针.doc(5页珍藏版)》请在金锄头文库上搜索。

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)coutp1is

2、notnullendl;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;elsecoutthep3isnull

3、endl;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为:调用前:调用后:注意:函数的参数进行值拷贝,即使传的是指针,也的对指针(即指针里存

4、的地址)的拷贝, 可不是指针里地址所指的值的拷贝啊!引用与指针的区别: 常常有人问引用与指针的区别,可能是指针和引用在功能上的相似,而是他们混淆这两个概念,现在总结以下二者的区别,希望大家能彻底弄清这两个概念根本性的差别: 引用,一个变量的别名,为什么引入别名呢?原因是我们想定义一个变量,他共享另一个变量的内存空间,使用别名无疑是一个好的选择。变量是什么?是一个内存空间的名字,如果我们给这个内存空间在起另外一个名字,那就是能够共享这个内存了,引用(别名)的由此而来。 指针,指向另一个内存空间的变量,我们可以通过它来索引另一个内存空间的内容,本身有自己的内存空间。二者区别:(1)引用访问一个变量是直接访问,而指针是间接访问。 (2)引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有自己的内存空间。 (3)引用在开始的时候就绑定到了一个内存空间(开始必须赋初值),所以他只能是这个内存空间的名字,而不能改成其他的,当然可以改变这个内存空间的值. 例如 int i = 3,j = 4; int &x = i;/成为i的别名 x = j;/不能否认x仍然引用i,并没有成为j的别名,只是修改了x和j共享的内存空间的值. 这点与指针不同,指针在任何时刻都可以改变自己的指向.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号