C语言,结构体指针赋值
时间: 2023-06-22 07:17:46 浏览: 719
在 C 语言中,结构体指针赋值可以使用两种方式:直接赋值和间接赋值。下面分别介绍这两种方式的实现方法。
1. 直接赋值
直接赋值就是将一个结构体指针变量指向另一个结构体指针变量所指向的结构体,示例代码如下:
```c
#include <stdio.h>
struct Student {
char name[20];
int age;
};
int main() {
struct Student stu1 = {"Tom", 18};
struct Student stu2 = {"Jerry", 19};
struct Student* p1 = &stu1;
struct Student* p2 = &stu2;
// 直接赋值
p1 = p2;
printf("p1->name = %s, p1->age = %d\n", p1->name, p1->age);
return 0;
}
```
在上面的示例代码中,我们定义了两个结构体变量stu1和stu2,并分别定义了两个指向结构体的指针变量p1和p2。我们可以使用直接赋值的方式将p1指向p2所指向的结构体,即将p1赋值为p2,最终输出结果为p1->name = Jerry, p1->age = 19。
2. 间接赋值
间接赋值就是通过一个指向指针的指针变量来修改一个指针变量的值,示例代码如下:
```c
#include <stdio.h>
struct Student {
char name[20];
int age;
};
int main() {
struct Student stu1 = {"Tom", 18};
struct Student stu2 = {"Jerry", 19};
struct Student* p1 = &stu1;
struct Student* p2 = &stu2;
struct Student** pp = &p1;
// 间接赋值
*pp = p2;
printf("p1->name = %s, p1->age = %d\n", p1->name, p1->age);
return 0;
}
```
在上面的示例代码中,我们定义了两个结构体变量stu1和stu2,并分别定义了两个指向结构体的指针变量p1和p2,以及一个指向指针的指针变量pp。我们可以使用间接赋值的方式将pp所指向的指针变量p1指向p2所指向的结构体,最终输出结果为p1->name = Jerry, p1->age = 19。
总的来说,直接赋值和间接赋值都可以用来进行结构体指针的赋值,具体使用哪种方式取决于实际情况。
阅读全文