编写一个函数swap,实现两个整形变量的交换,要求形参为指针或数组
时间: 2023-07-20 22:09:47 浏览: 125
好的,这是一个简单的C语言函数,可以实现两个整型变量的交换,形参为指针:
```c
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
使用方法如下:
```c
int x = 1, y = 2;
swap(&x, &y);
printf("x=%d, y=%d\n", x, y); // 输出 x=2, y=1
```
如果要使用数组作为形参,可以稍微修改一下:
```c
void swap(int arr[], int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
```
使用方法如下:
```c
int arr[] = {1, 2};
swap(arr, 0, 1);
printf("arr[0]=%d, arr[1]=%d\n", arr[0], arr[1]); // 输出 arr[0]=2, arr[1]=1
```
相关问题
9.编写实现两个整数交换的自定义函数swap(),要求形参采用指针变量,在main()函数中输入两个整数,调用swap()函数后输出结果(c语言实现)
在C语言中,你可以创建一个名为`swap`的函数,它接收两个整数的地址作为参数,通过交换这两个地址指向的值来达到交换整数的目的。下面是具体的实现:
```c
#include <stdio.h>
// 自定义函数 swap,接收两个整数指针并交换它们的值
void swap(int* a, int* b) {
int temp = *a; // 保存a指向的值到temp
*a = *b; // 将b指向的值赋给a
*b = temp; // 将temp的值赋给b
}
int main() {
int num1, num2;
// 输入两个整数
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
// 调用swap函数交换num1和num2
printf("Before swapping: num1 = %d, num2 = %d\n", num1, num2);
swap(&num1, &num2); // 传入地址而不是直接数值
printf("After swapping: num1 = %d, num2 = %d\n", num1, num2);
return 0;
}
```
在这个例子中,用户在主函数中输入两个整数,然后传递给`swap`函数进行交换,最后输出交换后的结果。
编写函数swap实现两个数据的互换,形参分别指针和引用 C语言
在C语言中,可以通过指针和引用来实现两个数据的互换。下面是一个使用指针的swap函数的示例:
```c
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
使用引用的示例如下:
```c
void swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
```
这两个函数都可以实现两个数据的互换,调用方式类似:
```c
int main() {
int x = 10;
int y = 20;
swap(&x, &y); // 使用指针的swap函数
// 或者
// swap(x, y); // 使用引用的swap函数
printf("x = %d, y = %d\n", x, y); // 输出结果:x = 20, y = 10
return 0;
}
```
注意,在使用指针进行互换时,需要传递变量的地址,即使用`&`操作符获取地址。而使用引用时,则直接传递变量即可。
阅读全文