答案:不能!
想要修改实参,需要两步:
1.传实参的地址
2.对实参的地址进行一次解引用
下面将以二级指针与一级指针为例,进行讲解:
目的:让a , b 的地址互换
void Swap(int** a, int** b) //二级指针接收
{
int* tmp = *a;
*a = *b;
*b = tmp;
}
int main()
{
int a = 0;
int b = 1;
int* pa = &a;
int* pb = &b;
printf("%p %p\n", pa, pb);
Swap(&pa, &pb); //传二级指针
printf("%p %p\n", pa, pb);
return 0;
}
可以发现,只有传实参的指针,并对指针进行解引用,才能对实参进行修改
值得一提的是,想要修改一级指针的指向,则需要传二级指针