C语言中,可以通过使用临时变量来交换两个结构体的值。
以下是一个示例代码:
#include<stdio.h>
#include<string.h>
// 定义结构体
struct Student {
char name[20];
int age;
};
void swap(struct Student *s1, struct Student *s2) {
struct Student temp; // 临时变量
temp = *s1; // 将s1的值拷贝给temp
*s1 = *s2; // 将s2的值拷贝给s1
*s2 = temp; // 将temp的值拷贝给s2
}
int main() {
struct Student s1, s2;
// 初始化s1的值
strcpy(s1.name, "John");
s1.age = 20;
// 初始化s2的值
strcpy(s2.name, "Alice");
s2.age = 25;
printf("交换前的值:\n");
printf("s1:name = %s, age = %d\n", s1.name, s1.age);
printf("s2:name = %s, age = %d\n", s2.name, s2.age);
// 调用swap函数交换s1和s2的值
swap(&s1, &s2);
printf("交换后的值:\n");
printf("s1:name = %s, age = %d\n", s1.name, s1.age);
printf("s2:name = %s, age = %d\n", s2.name, s2.age);
return 0;
}
在上述代码中,我们定义了一个Student
结构体,并声明了一个swap
函数来交换两个结构体的值。通过在main
函数中初始化两个结构体的值,并调用swap
函数来交换它们的值。最后,我们打印交换后的结果。
输出结果如下:
交换前的值:
s1:name = John, age = 20
s2:name = Alice, age = 25
交换后的值:
s1:name = Alice, age = 25
s2:name = John, age = 20