C语言指针实现两个值互换
时间: 2023-04-09 22:03:45 浏览: 240
C语言指针可以通过中间变量实现两个值互换,例如:
```
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
调用该函数时,传入需要交换的两个值的指针即可:
```
int x = 1, y = 2;
swap(&x, &y);
// 现在 x = 2, y = 1
```
相关问题
c语言用指针实现两个数的互换
C语言用指针可以实现两个数的互换。具体实现方法为,定义两个变量a和b,再定义一个指针变量p,将p指向a,然后将a的值赋给b,再将p指向b,最后将b的值赋给a,完成两个数的互换。
示例代码如下:
```
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a = 1, b = 2;
printf("交换前:a=%d, b=%d\n", a, b);
swap(&a, &b);
printf("交换后:a=%d, b=%d\n", a, b);
return 0;
}
```
其中,swap函数用于交换两个数的值,参数为两个指针变量a和b,通过指针操作实现交换;main函数中定义了两个整型变量a和b,通过调用swap函数交换它们的值,最终输出交换后的结果。
用c语言实现用指针传递参数,实现两个字符串的互换
可以使用指针传递参数来实现两个字符串的互换。以下是一个用C语言实现的示例代码:
```c
#include <stdio.h>
#include <string.h>
void swap(char **str1, char **str2) {
char *temp = *str1;
*str1 = *str2;
*str2 = temp;
}
int main() {
char str1[] = "Hello";
char str2[] = "World";
printf("Before swap:\n");
printf("str1: %s\n", str1);
printf("str2: %s\n", str2);
swap(&str1, &str2);
printf("After swap:\n");
printf("str1: %s\n", str1);
printf("str2: %s\n", str2);
return 0;
}
```
在这个示例代码中,我们定义了一个名为 `swap` 的函数,它使用了指针传递参数来交换两个字符串。该函数使用了一个 `char **` 类型的指针,这是因为我们需要传递两个字符串的指针,而每个字符串本身也是一个指针。
在 `main` 函数中,我们声明了两个字符串 `str1` 和 `str2`,并将它们传递给 `swap` 函数。在 `swap` 函数中,我们使用了一个 `temp` 变量来保存 `str1` 的值,然后将 `str1` 的指针指向 `str2`,将 `str2` 的指针指向 `temp`,从而实现了两个字符串的互换。
最后,我们在 `main` 函数中输出交换后的字符串,以验证函数是否正确工作。
阅读全文