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