创建一个结构体ST,成员有num(学号),name(姓名),score(成绩),birthday(出生日期),出生日期是一个名为date的结构体类型,初始化第1个人员的数据信息并赋予变量st1,再把此人信息赋给另一个变量st2,输出两个变量st1及st2的值。
时间: 2023-06-14 18:03:36 浏览: 130
下面是使用 C 语言实现的代码:
```c
#include <stdio.h>
struct date {
int year;
int month;
int day;
};
struct ST {
int num;
char name[20];
float score;
struct date birthday;
};
int main() {
struct ST st1 = { 1001, "张三", 89.5, { 2000, 7, 8 } };
struct ST st2 = st1;
printf("st1: num=%d, name=%s, score=%.1f, birthday=%d/%d/%d\n",
st1.num, st1.name, st1.score, st1.birthday.year, st1.birthday.month, st1.birthday.day);
printf("st2: num=%d, name=%s, score=%.1f, birthday=%d/%d/%d\n",
st2.num, st2.name, st2.score, st2.birthday.year, st2.birthday.month, st2.birthday.day);
return 0;
}
```
输出结果:
```
st1: num=1001, name=张三, score=89.5, birthday=2000/7/8
st2: num=1001, name=张三, score=89.5, birthday=2000/7/8
```
在这个程序中,我们定义了两个结构体类型:`date` 和 `ST`。其中,`date` 结构体包含三个整型成员 `year`、`month` 和 `day`,用来表示一个日期。`ST` 结构体包含四个成员:整型学号 `num`、字符串类型姓名 `name`、浮点型成绩 `score` 和 `date` 类型的出生日期 `birthday`。
我们首先定义并初始化了一个 `ST` 类型的变量 `st1`,然后把它的值赋给另一个变量 `st2`。最后,使用 `printf()` 函数输出两个变量 `st1` 和 `st2` 的值。可以看到,两个变量的值完全相同。这说明,结构体类型的赋值操作是将一个结构体的值复制到另一个结构体变量中,而不是两个结构体变量指向同一个结构体的实例。
阅读全文