指针的引用,相当于传递的是:指针的指针, 这样指针的数值是可以改变的
而单传递指针,不传递指针的引用,那么指针指向的数据是可以改变,而指针本身是不可以改变的
fun(int * p); // pA的数值在函数返回后不会变化
*指针本身不变,仅指向的内容可变。
void fun(int* & p)
{
p = NULL; // 函数返回后, p就是NULL了
}
void fun(int* p)
{
p = NULL; // 函数返回后, p依然是传递进来的数值
}
而单传递指针,不传递指针的引用,那么指针指向的数据是可以改变,而指针本身是不可以改变的
fun(int * p); // pA的数值在函数返回后不会变化
fun(int*& p); // pA的数值在函数返回可能会发生变
#include<stdio.h>
void fun(int *&p)
{
p=NULL;
}
int main()
{
int *p;
fun(p);
if(!p)
printf("aaaaaaa\n");
getchar();
return 0;
}
#include<stdio.h>
void fun(int &p)
{
p=NULL;
}
int main()
{
int *p;
fun(p);
if(!p)
printf("aaaaaaa\n");
getchar();
return 0;
}//打印不出来
void fun(int* & p)
{
p = NULL; // 函数返回后, p就是NULL了
}
void fun(int* p)
{
p = NULL; // 函数返回后, p依然是传递进来的数值
}