如果想要交换的是结构体里的数怎么办
时间: 2024-02-20 20:00:08 浏览: 101
OPCUA读写结构体示例
同样可以通过指针来实现交换结构体中的两个成员变量的值。假设我们有一个结构体定义如下:
```
struct Point {
int x;
int y;
};
```
现在我们想要交换结构体中的x和y两个成员变量,可以定义一个函数如下:
```
void swap(struct Point *p) {
int temp = p->x;
p->x = p->y;
p->y = temp;
}
```
在这个函数中,我们传入一个Point类型的指针p,然后通过指针来交换结构体中的x和y两个成员变量的值。
然后在主函数中,我们可以定义一个Point类型的结构体变量,并且调用swap函数来交换x和y两个成员变量的值,例如:
```
int main() {
struct Point p = {5, 10};
printf("Before swapping: x = %d, y = %d\n", p.x, p.y);
swap(&p);
printf("After swapping: x = %d, y = %d\n", p.x, p.y);
return 0;
}
```
在这个例子中,我们定义了一个Point类型的结构体变量p,并且给它的x和y成员变量分别赋值为5和10。然后调用swap函数,传入p的地址,函数内部通过指针来交换x和y两个成员变量的值,最后输出交换后的结果。
阅读全文