指针的引用-ZZ

本文探讨了在函数中传递指针时如何通过指针的引用和指针的指针来改变对象的值和指针本身。通过代码示例展示了未加&时,指针在函数中虽然值被修改,但返回后仍指向原对象;加了&时,指针值被彻底修改,返回后指向新的对象。强调了指针作为参数时,与普通变量引用的相似性。
摘要由CSDN通过智能技术生成

原文出处

复习数据结构的时候看到指针的引用,两年前学的细节确实有点想不起来,于是查了一下网上的资料,并且自己实践了一下,总结了一句话就是:

指针作为参数传给函数,函数中的操作可以改变指针所指向的对象和对象的值,但函数结束后还是会指向原来的对象,若要改变,可用指针的指针或者指针的引用。

     ps:对原po的代码稍作修改,看上去更直观些。

 1 #include<iostream>
 2 using namespace std;
 3 
 4 void foo(int *&t, int *y)//此处是int *t还是int *&t,决定了调用该函数的指针本身会不会被修改。分别跑一下程序即可知。
 5 {
 6     t = y;
 7     //*t = 4;
 8     cout << "foo1:" << t << endl;
 9     cout << "foo2:" << y << endl;
10 }
11 
12 int main()
13 {
14     int num = 4;
15     int num2 = 5;
16     int *p = &num;
17     int *q = &num2;
18     cout <<"p: "<< p << endl;
19     cout <<"q: "<< q << endl;
20     foo(p, q);
21     cout << "after foo" << endl;
22     cout <<"p: "<< p << endl;
23     cout <<"q: "<< q << endl;
24     cout <<"*p: "<< *p << endl;
25     cout <<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值