版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
#include <stdio.h>
void Fun(int *p)
{
p = NULL;
}
int main()
{
int a = 10;
int *p = &a;
//p = NULL;//崩溃
Fun(p);
printf("%d\n",*p);//思考,1.为什么不崩溃,2.想要崩溃怎么办?
return 0;
}
父函数调用子函数,子函数如果想要修改父函数的值,必须传指针(地址),子函数内必须要解引用。
函数调用时,传递形式参数,无法改变实际参数的值。如要改变实参的值,必须满足传指针解引用,改变指针所指向的内存所保存的值。
这里如果想让其奔溃需传参&p;
#include <stdio.h>
void Fun(int **p)
{
*p = NULL;
}
int main()
{
int a = 10;
int *p = &a;
Fun(&p);
printf("%d\n",*p);
return 0;
}