初学者关于指针的疑惑

void Fun(int*p)

p=a;(假设a是已赋值的int型指针变量)

int main()

int*p;

Fun(p);

好奇调用完函数后p的值会发生改变吗?

都知道用指针传参可以改变其指向内容的值,那要改变指针变量本身的值,这样写还能行吗?还是说要用指针的指针?

你自己测试的结果会说明的

指针变量保存的是地址值,所以他本身是可以改变的,假设int a,b;int *p;那么p指针可以指向a的地址也可以指向b的地址,不需要用指针的指针

我个人的猜想是,函数形参传入本质上还是值传递,只是说有地址值作为形参的话,可以通过它改变其指向内容,但出了函数,作为形参的地址值本身还是不改变。所以本质上都是值传递