c语言交换两个指针变量的值
时间: 2023-07-13 17:11:13 浏览: 364
交换两个指针变量的值需要使用指向指针的指针。具体步骤如下:
```c
void swap(int **p, int **q) {
int *temp; // 定义一个指向指针的指针
temp = *p;
*p = *q;
*q = temp;
}
int main() {
int a = 1, b = 2;
int *p = &a, *q = &b;
printf("交换前:*p=%d, *q=%d\n", *p, *q);
swap(&p, &q);
printf("交换后:*p=%d, *q=%d\n", *p, *q);
return 0;
}
```
在上面的代码中,`swap` 函数的参数是指向指针的指针,传入 `&p` 和 `&q` 的地址即可。在函数内部,定义一个指向指针的指针 `temp`,将 `*p` 的值赋给 `temp`,再将 `*q` 的值赋给 `*p`,最后将 `temp` 的值赋给 `*q`,完成交换操作。
相关问题
请举一个C语言交换两个指针变量的例子
可以使用一个临时变量来交换两个指针变量的值,示例代码如下:
void swap(int **p1, int **p2) {
int *temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main() {
int a = 1, b = 2;
int *p1 = &a, *p2 = &b;
printf("Before swap: p1=%d, p2=%d\n", *p1, *p2);
swap(&p1, &p2);
printf("After swap: p1=%d, p2=%d\n", *p1, *p2);
return 0;
}
C语言使用指针交换两个变量的值
好的,这是一个比较基础的 C 语言问题,可以使用指针来交换两个变量的值,具体代码如下:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a, b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
printf("交换前:a = %d, b = %d\n", a, b);
swap(&a, &b);
printf("交换后:a = %d, b = %d\n", a, b);
return 0;
}
```
在这个程序中,我们首先定义了一个 `swap` 函数,用于交换两个整数的值,它接受两个指向整数类型变量的指针作为参数。然后在 `main` 函数中,我们从标准输入读取两个整数,并将它们分别赋值给变量 `a` 和 `b`。接着调用 `swap` 函数,交换变量 `a` 和 `b` 的值。最后输出交换前和交换后的值,以验证交换是否成功。
在 `swap` 函数中,我们首先定义了一个临时变量 `temp`,用于保存变量 `a` 的值。然后将变量 `a` 的值赋值为变量 `b` 的值,变量 `b` 的值赋值为临时变量 `temp` 的值,即完成了变量 `a` 和 `b` 的值的交换。注意,在交换变量的值时,我们使用了指针来操作变量的值。
阅读全文