指针,和指针的引用
发布日期: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<<"失败"<
iAge<
           执行完函数Fun1,p1仍然等于NULL,而函数Fun3执行后,p1则不再是NULL,执行函数Fun2,可以修改iAge

           函数Fun2很好理解,很多人糊涂的是1和3的区别

           指针,指向了一个地址,函数Fun2拿到这个地址,然后改变了iAge

           函数Fun1拿到了这个指向NULL的地址,然后想通过赋值操作,修改p1所指向的地址,但这是不可能的,如果想要这么做,就必须用Fun3的方式,必须传递一个指针的引用,这样,函数体内对它的修改才是有效的。

           

           

转载地址:https://blog.csdn.net/KWSY2008/article/details/44157691 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C++ 运算符重载
下一篇:关于string的find()函数,你必须知道的一个坑

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年01月05日 14时47分03秒