C使用指针的指针,从键盘输入2个整数,要求交换2个整数后打印出来
时间: 2024-10-02 14:01:12 浏览: 24
在C语言中,我们可以使用指针的指针(也称为二级指针)来操作内存地址并间接交换两个整数。首先,我们需要定义两个整型变量,并获取用户的输入。然后,我们将这两个变量的地址存储到一级指针中。接着,我们再创建一个二级指针,指向这个一级指针。通过二级指针,我们可以交换这两个地址所对应的值。以下是简单的示例代码:
```c
#include <stdio.h>
// 定义函数,接收二级指针作为参数
void swap(int** ptrs) {
int temp = *(*ptrs); // 获取第一个指针所指向的值
*(*ptrs) = *(*(ptrs + 1)); // 将第二个指针所指向的值赋给第一个
*(*(ptrs + 1)) = temp; // 将原始的第一个值赋给第二个指针
}
int main() {
int num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
// 创建一级指针,保存两个整数的地址
int* ptr1 = &num1;
int* ptr2 = &num2;
// 创建二级指针,指向一级指针
int** ptrs = &ptr1;
// 调用swap函数交换地址中的值
swap(ptrs);
printf("交换后的数值:\n");
printf("num1 = %d\n", num1);
printf("num2 = %d\n", num2);
return 0;
}
```
在这个程序里,用户输入的两个整数会被临时存储在`ptr1`和`ptr2`中,然后通过`swap`函数实现它们的交换。
阅读全文