下面这个例子就是最好的说明,我想出来的嘻嘻。
有三个函数
f函数让一个p和a相等,然后企图通过改变p的方式来改变a
g函数更狠,都不用p指针,上来就直接改变a
k函数通过指针的指针来改变,最终终于改变了a的值
#include <bits/stdc++.h>
using namespace std;
void f(int *a)
{
int *p,i=5;
p=a;
p=&i;
}
void g(int *a)
{
int i=5;
a=&i;
}
void k(int **a)
{
int i=5;
*a=&i;
}
int main()
{
int *a;
a=NULL;
f(a);
if(a==NULL)
printf("this time point a equals null.\n");
else
printf("this time point a doesn't equal null.\n");
a=NULL;
g(a);
if(a==NULL)
printf("this time point a equals null.\n");
else
printf("this time point a doesn't equal null.\n");
a=NULL;
k(&a);
if(a==NULL)
printf("this time point a equals null.\n");
else
printf("this time point a doesn't equal null.\n");
return 0;
}


本文通过三个函数f、g、k的实例演示了如何使用指针以及指针的指针来修改变量的地址和值。解释了不同情况下指针操作的行为,并展示了如何在C++中正确地使用这些技术。





