精品-清华大学C语言课件 第12章03 包含结构的结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
包含结构的结构
在介绍有关结构体变量的定义时,曾经说明结构体中的成员不仅可以是基本类型,也可以是结构体类型。 例如,定义一个学生信息结构体类型,其中的成员包括姓名,学号,性别,出生日期。那么其中成员出生日期就属于一个结构体类型,因为
出生日期包括年,月,日这3个成员。这样的话就学生信息这个结构体类型就是包含结构的结构。
【例12.2】 包含结构的结构。 在本实例中,定义两个结构体类型,一个表示日期,一个表示学生的个人信wk.baidu.com。其中日期结构体是个人信息结构中的成员。通过使用个人信
息结构类型表示学生的基本信息内容。 #include<stdio.h>
struct date/*时间结构*/ { int year;/*年*/ int month;/*月*/ int day;/*日*/ };
Thank you
struct student/*学生信息结构*/ { char name[30];/*姓名*/ int num;/*学号*/ char sex[3];/*性别*/ struct date birthday;/*出生日期*/ }student={"王红玉",12061212,"男",{1986,12,6}}; /*为结构变量初始化*/
int main() { printf("-----个人信息-----\n"); printf("姓名: %s\n",student.name);/*输出结构成员*/ printf("学号: %d\n",student.num); printf("性别: %s\n",student.sex);/*将成员结构体数据输出*/ printf("出生日期: %d,%d,%d\n",student.birthday.year, student.birthday.month,student.birthday.day); return 0; }
运行程序,显示效果如图12.10所示:
图12.10 包含结构的结构 程序中在为包含结构的结构struct student类型初始化时要注意,因为出生日期是结构体,所以要 再使用大括号将赋值的数据放置在内。 在引用成员结构体变量的成员时,例如student.birthday.year,student.birthday表示的是引用 student变量中的成员birthday,所以student.birthday.year表示的是student变量中结构体变量 birthday的成员year变量的值。
相关文档
最新文档