C语言使用指针任意输入两个数交换并输出
时间: 2024-03-02 18:49:55 浏览: 57
可以使用指针来交换两个数的值,代码如下:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int num1, num2;
printf("请输入两个数:\n");
scanf("%d%d", &num1, &num2);
printf("交换前:num1 = %d, num2 = %d\n", num1, num2);
swap(&num1, &num2);
printf("交换后:num1 = %d, num2 = %d\n", num1, num2);
return 0;
}
```
在 `swap` 函数中,首先定义一个 `temp` 变量,将 `a` 指向的值赋给 `temp`,然后将 `b` 指向的值赋给 `a` 指向的值,最后将 `temp` 的值赋给 `b` 指向的值。在 `main` 函数中,我们先输入两个数,然后调用 `swap` 函数交换两个数的值,最后输出交换后的结果。
相关问题
c语言从键盘任意输入两个整数,用指针变量作为函数参数,编程实现两数互换功能,然后将交换后的数据重新输出。
可以使用指针变量作为函数参数,实现两数互换的功能。具体代码如下:
```c
#include <stdio.h>
void swap(int *a, int *b);
int main() {
int a, b;
printf("请输入两个整数:\n");
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;
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
在 `main` 函数中,首先从键盘输入两个整数 `a` 和 `b`,然后调用 `swap` 函数,将指向 `a` 和 `b` 的指针作为参数传递给函数。在 `swap` 函数中,首先使用一个临时变量 `temp` 存储指针 `a` 指向的元素值,然后将 `a` 指向的元素值改为指针 `b` 指向的元素值,最后将指针 `b` 指向的元素值改为 `temp`。这样就完成了两数互换的功能。最后在 `main` 函数中输出交换后的数据。
帮我写一个c语言函数,交换两个指针
是的,我可以帮你写一个交换两个指针的C语言函数。下面是函数的代码:
```c
void swap_ptr(void **ptr1, void **ptr2) {
void *temp = *ptr1;
*ptr1 = *ptr2;
*ptr2 = temp;
}
```
这个函数使用了一个双重指针的技巧,可以交换任意类型的指针。调用这个函数时,你需要将两个指针的地址传递给它。例如,在主函数中,你可以这样调用这个函数:
```c
int main() {
int *a = malloc(sizeof(int));
int *b = malloc(sizeof(int));
*a = 1;
*b = 2;
printf("Before swap: a = %d, b = %d\n", *a, *b);
swap_ptr((void**)&a, (void**)&b);
printf("After swap: a = %d, b = %d\n", *a, *b);
free(a);
free(b);
return 0;
}
```
这个例子中,我们首先创建了两个整型指针,并将它们初始化为1和2。然后我们调用了`swap_ptr`函数来交换这两个指针,最后再次打印它们的值。