用结构体指针实现元素的交换
时间: 2024-03-22 20:42:47 浏览: 20
可以使用结构体指针来实现元素的交换。假设有一个结构体定义如下:
```
struct person {
char name[20];
int age;
};
```
要交换两个 `person` 类型的元素,可以定义一个函数如下:
```
void swap(struct person *p1, struct person *p2) {
struct person temp = *p1;
*p1 = *p2;
*p2 = temp;
}
```
在主函数中,可以先定义两个 `person` 类型的变量 `p1` 和 `p2`,然后将它们的地址传递给 `swap` 函数即可完成元素的交换:
```
int main() {
struct person p1 = {"Alice", 20};
struct person p2 = {"Bob", 25};
printf("Before swap:\n");
printf("p1: name=%s, age=%d\n", p1.name, p1.age);
printf("p2: name=%s, age=%d\n", p2.name, p2.age);
swap(&p1, &p2);
printf("After swap:\n");
printf("p1: name=%s, age=%d\n", p1.name, p1.age);
printf("p2: name=%s, age=%d\n", p2.name, p2.age);
return 0;
}
```
输出结果如下:
```
Before swap:
p1: name=Alice, age=20
p2: name=Bob, age=25
After swap:
p1: name=Bob, age=25
p2: name=Alice, age=20
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)