指针,和指针的引用
发布日期:2021-06-21 03:03:12
浏览次数:21
分类:技术文章
本文共 577 字,大约阅读时间需要 1 分钟。
先贴出代码
void TestReference::Fun1(Person *p){ p = new Person("张三",21);}void TestReference::Fun2(Person *p){ p->iAge = 28;}void TestReference::Fun3(Person* &p){ p = new Person("张三",21);}
函数Fun1传入一个指针,在函数内对p进行赋值,Fun2传入一个指针,修改iAge,函数Fun3传入一个指针的引用,对其进行赋值,接下来使用这三个函数
TestReference test; Person *p1 = NULL; test.Fun1(p1); if(NULL==p1) { cout<<"失败"<执行完函数Fun1,p1仍然等于NULL,而函数Fun3执行后,p1则不再是NULL,执行函数Fun2,可以修改iAgeiAge<
函数Fun2很好理解,很多人糊涂的是1和3的区别
指针,指向了一个地址,函数Fun2拿到这个地址,然后改变了iAge
函数Fun1拿到了这个指向NULL的地址,然后想通过赋值操作,修改p1所指向的地址,但这是不可能的,如果想要这么做,就必须用Fun3的方式,必须传递一个指针的引用,这样,函数体内对它的修改才是有效的。
转载地址:https://blog.csdn.net/KWSY2008/article/details/44157691 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年01月05日 14时47分03秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Servlet 技术全总结 (已完成,不定期增加内容)
2019-06-23
[JSOI2008]星球大战starwar BZOJ1015
2019-06-23
CountDownLatch与thread-join()的区别
2019-06-23
linux下MySQL安装登录及操作
2019-06-23
centos 7 部署LDAP服务
2019-06-23
揭秘马云帝国内幕:马云的野心有多大
2019-06-23
topcoder srm 680 div1
2019-06-23
算法专题(1)-信息学基本解题流程!
2019-06-23
iOS项目分层
2019-06-23
UML关系图
2019-06-23
一个action读取另一个action里的session
2019-06-23
leetcode 175. Combine Two Tables
2019-06-23
如何给一个数组对象去重
2019-06-23
Guava包学习-Cache
2019-06-23
2019-06-12 Java学习日记之JDBC
2019-06-23
linux c 笔记 线程控制(二)
2019-06-23
vue.js笔记
2019-06-23
【Unity3D入门教程】Unity3D之GUI浅析
2019-06-23
Hive 简单操作
2019-06-23
湘潭1247 Pair-Pair(树状数组)
2019-06-23