/**
*
* Althor:Hacker Hao
* Create:2023.10.11
*
*/
#include <bits/stdc++.h>
using namespace std;
void fun1(int* ptr) {
*ptr = 3;
ptr = NULL; //不会改变原指针所指向的对象
}
void fun2(int*& ptr) {
*ptr = 2;
ptr = NULL; //会改变原指针所指向的对象
//也就是说把原来的t的地址和值也一起带着给改了
//可以理解为解引用了一个地址值,最后把地址给改了
}
int main()
{
int* t, a = 1;
int b = 2;
t = &a;
printf("t:%d\n", *t);
fun1(t);
printf("foo1:%d\n", *t);
fun2(t);
printf("foo2:%d\n", *t);
return 0;
}
图片理解: