写一个函数实现参数指针地址对调
时间: 2024-05-14 10:13:47 浏览: 12
好的,以下是实现指针地址对调的函数代码:
```c
void pointerSwap(void **a, void **b){
void *temp = *a;
*a = *b;
*b = temp;
}
```
该函数接收两个 `void*` 类型的指针,实现它们的地址对调。那么调用该函数的方法如下:
```c
int main(){
int a = 1, b = 2;
int *pa = &a, *pb = &b;
printf("交换前:\n");
printf("pa = %p, *pa = %d\n", pa, *pa);
printf("pb = %p, *pb = %d\n", pb, *pb);
pointerSwap((void**)&pa, (void**)&pb);
printf("交换后:\n");
printf("pa = %p, *pa = %d\n", pa, *pa);
printf("pb = %p, *pb = %d\n", pb, *pb);
return 0;
}
```
在该示例中,我们首先声明了两个 `int` 类型的变量 `a` 和 `b`,并且获取它们的地址。接下来,我们将指向 `a` 的指针和指向 `b` 的指针传递给 `pointerSwap` 函数。注意,在传递这两个指针的地址时,我们需要使用 `(void**)&` 强制转换为 `void**` 类型。最后,我们输出 `pa` 和 `pb` 指向的变量的值,发现它们已经被正确交换了。
希望这个函数可以解决您的问题!