资源描述:
《C语言教学之自定义数据类型课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计第九章自定义数据类型1本章主要内容结构体链表共用体枚举类型用typedef定义数据类型2结构体是由不同数据类型的数据组成的集合体,其内部组成由用户定义结构体的概念学号姓名性别年龄成绩地址1001王平男18600北京1005田月女17580山东..................学生情况登记表§9.1结构体-struct3§9.1结构体-struct声明结构类型struct结构名{数据类型成员名1;数据类型成员名2;......数据类型成员名n;};结构体类型声明4例:将前表数据定义为结构体str
2、uctstudent/*学生信息结构体*/{intnum;/*学号*/charname[20];/*姓名*/charsex;/*性别*/intage;/*年龄*/floatscore;/*成绩*/charaddr[30];/*住址*/}结构体类型声明§9.1结构体-struct5类型说明位置:main函数内外均可内存字节数>=所有成员字节总和控制信息占用字节数取决于具体C编译系统可用sizeof运算求出具体值例:sizeof(structstudent)结构体类型的存储§9.1结构体-struct6§9.1结
3、构体-struct下列程序的执行结果为:TC9.1-0.cstructscore{longno;floatEng,Math,C;};structstudent{longnum;charname[20];charsex;shortage;};结构体类型的存储7voidmain(){printf("structscore的字节数为:%d",sizeof(structscore));printf("structstudent的字节数为:%d",sizeof(structstudent));}结构体类型的存储
4、§9.1结构体-struct计算结果:structscore的字节数为:16structstudent的字节数为:288§9.1结构体-struct注意:结构体类型说明是为系统指定内存分配方案,等于定义了一个新的数据类型。具体使用时,需定义本结构体类型变量例:上例定义了两个新的数据类型-structscore型和structstudent型,以后可以用这两个类型名去定义变量,获得内存分配的空间结构体类型的存储9§9.1结构体-struct变量说明形式结构名结构变量名;例:structstudentman;注意
5、:结构变量的存储类型概念、它的寿命、可见性及使用范围与普通变量完全一致。结构变量可以进行初始化。例:structstudentman={1001,″王平″, ´T´,18,600,″北京″};结构变量说明与int地位相当10§9.1结构体-struct结构体变量的定义位置:先定义结构类型,再进行结构变量说明二者同时进行structstudent{intnum;charname[20];charsex;intage;}stu={97001,"LinLin",'F',19};结构变量说明11§9.1结构体-str
6、uct结构体变量的定义位置:直接定义结构体类型的变量。struct{intnum;charname[20];}a1,a2;注意,用这种形式声明的结构体类型没有类型名,不能再去定义新的变量结构变量说明12§9.1结构体-struct说明:结构体的成员也可以是一个结构体变量structdate{intyear;intmonth;intday;};structperson{intid;charname[20];structdatebirthday;};结构变量说明13§9.1结构体-struct引用形式:结构体变量
7、一般不能整体引用,只能引用其成员结构体成员的引用形式:结构变量名.成员名例:structstudentman={1001,″王平″, ´T´,18,600,″北京″};x=man.scorex的值为600st.Total=st.Eng+st.Math+st.C结构变量的使用14例TC9.1-1.C结构体变量的初始化和使用#includestructstudent//学生信息结构体{intnum;//学号charname[20];//姓名charsex;//性别intage;//年龄}stu
8、={97001,"LinLin",'F',19};结构变量应用实例类型与变量同时定义初始化§9.1结构体-struct15//结构变量的引用voidmain(){printf("%7d%10s%3c%3d",stu.num,stu.name,stu.sex,stu.age);}运行结果:97001LinLinF19注意:不能整体输入/出变量,只能输入/输出结构体成员休息前一页下一页返回16§9