《构造数据类型》PPT课件.ppt

上传人:wuy****n92 文档编号:69927899 上传时间:2023-01-11 格式:PPT 页数:63 大小:1.60MB
返回 下载 相关 举报
《构造数据类型》PPT课件.ppt_第1页
第1页 / 共63页
《构造数据类型》PPT课件.ppt_第2页
第2页 / 共63页
点击查看更多>>
资源描述

《《构造数据类型》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《构造数据类型》PPT课件.ppt(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第第第7 7 7 7章章章章 构造数据类型构造数据类型构造数据类型构造数据类型C C C C数数数数据据据据类类类类型型型型指针类型指针类型指针类型指针类型空类型空类型空类型空类型voidvoid定义类型定义类型定义类型定义类型typedeftypedef构造类型构造类型构造类型构造类型枚举类型枚举类型枚举类型枚举类型enumenum数组数组数组数组结构体结构体结构体结构体structstruct共用体共用体共用体共用体unionunion基本类型基本类型基本类型基本类型字符类型字符类型字符类型字符类型charchar实型实型实型实型单精度型单精度型单精度型单精度型floatfloat双精度

2、型双精度型双精度型双精度型doubledouble整整整整 型型型型短整型短整型短整型短整型shortshort长整型长整型长整型长整型longlong整型整型整型整型intint语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类型型C只能定义单一的只能定义单一的只能定义单一的只能定义单一的数据类型,反映数据类型,反映数据类型,反映数据类型,反映事物单一属性事物单一属性事物单一属性事物单一属性第第7 7章:构造数据类型章:构造数据类型u学习的意义学习的意义 如定义学生成绩:如定义学生成绩:如定义学生成绩:如定义学生成绩:float score;float score;能定义复杂的数能

3、定义复杂的数能定义复杂的数能定义复杂的数据类型,反映事据类型,反映事据类型,反映事据类型,反映事物多个属性物多个属性物多个属性物多个属性如定义学生信息:如定义学生信息:如定义学生信息:如定义学生信息:struct STUstruct STU char no9;char no9;/学号学号学号学号 char name12;char name12;/姓名姓名姓名姓名 char sex;char sex;/性别性别性别性别 float score;float score;/成绩成绩成绩成绩 student;student;构造数据类型丰富了构造数据类型丰富了构造数据类型丰富了构造数据类型丰富了C C

4、 C C语言对数据信息的处理能力。语言对数据信息的处理能力。语言对数据信息的处理能力。语言对数据信息的处理能力。离开了构造数据类型,很多信息的描述是无法进行定义,离开了构造数据类型,很多信息的描述是无法进行定义,离开了构造数据类型,很多信息的描述是无法进行定义,离开了构造数据类型,很多信息的描述是无法进行定义,更无法进行处理的。更无法进行处理的。更无法进行处理的。更无法进行处理的。计算机中的信息表示更多是由构造数据类型来定义的,计算机中的信息表示更多是由构造数据类型来定义的,计算机中的信息表示更多是由构造数据类型来定义的,计算机中的信息表示更多是由构造数据类型来定义的,象象象象数据结构数据结构

5、数据结构数据结构课程中的链表、树、图等课程中的链表、树、图等课程中的链表、树、图等课程中的链表、树、图等 可以更好地理解数据库中的记录的含义,可以更好地理解数据库中的记录的含义,可以更好地理解数据库中的记录的含义,可以更好地理解数据库中的记录的含义,为为为为C+C+C+C+语言中类的概念的理解提供了帮助。语言中类的概念的理解提供了帮助。语言中类的概念的理解提供了帮助。语言中类的概念的理解提供了帮助。u学习目标学习目标 熟练掌握结构体、共用体和枚举熟练掌握结构体、共用体和枚举熟练掌握结构体、共用体和枚举熟练掌握结构体、共用体和枚举数据类型数据类型数据类型数据类型的定义方法;的定义方法;的定义方法

6、;的定义方法;熟练掌握结构体、共用体和枚举熟练掌握结构体、共用体和枚举熟练掌握结构体、共用体和枚举熟练掌握结构体、共用体和枚举变量变量变量变量的定义和引用方法;的定义和引用方法;的定义和引用方法;的定义和引用方法;掌握结构数组的定义及其应用;掌握结构数组的定义及其应用;掌握结构数组的定义及其应用;掌握结构数组的定义及其应用;掌握指向结构的指针的概念及其应用;掌握指向结构的指针的概念及其应用;掌握指向结构的指针的概念及其应用;掌握指向结构的指针的概念及其应用;了解线性链表的创建、插入节点、删除节点和撤销节点的了解线性链表的创建、插入节点、删除节点和撤销节点的了解线性链表的创建、插入节点、删除节点

7、和撤销节点的了解线性链表的创建、插入节点、删除节点和撤销节点的算法;算法;算法;算法;掌握利用构造数据类型作为函数参数和返回值的函数定义掌握利用构造数据类型作为函数参数和返回值的函数定义掌握利用构造数据类型作为函数参数和返回值的函数定义掌握利用构造数据类型作为函数参数和返回值的函数定义方法;方法;方法;方法;语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类型型Cu学习内容学习内容 构造数据类型概述构造数据类型概述构造数据类型概述构造数据类型概述 结构体结构体结构体结构体l l 结构体类型的定义结构体类型的定义结构体类型的定义结构体类型的定义l l 结构体变量的定义和引用结构体变量的

8、定义和引用结构体变量的定义和引用结构体变量的定义和引用l l 结构体变量的赋值结构体变量的赋值结构体变量的赋值结构体变量的赋值l l 简化结构体类型名简化结构体类型名简化结构体类型名简化结构体类型名 结构体数组结构体数组结构体数组结构体数组 线性链表线性链表线性链表线性链表 共用体共用体共用体共用体l l 共用体类型的定义共用体类型的定义共用体类型的定义共用体类型的定义l l 共用体变量的定义和引用共用体变量的定义和引用共用体变量的定义和引用共用体变量的定义和引用l l 共用体变量的赋值共用体变量的赋值共用体变量的赋值共用体变量的赋值 位域位域位域位域 枚举类型变量的定义和引用枚举类型变量的定

9、义和引用枚举类型变量的定义和引用枚举类型变量的定义和引用 构造数据类型应用综合举例构造数据类型应用综合举例构造数据类型应用综合举例构造数据类型应用综合举例 本章小结本章小结本章小结本章小结语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类型型C7.1 7.1 结构体结构体语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类型型C 结构体是结构体是结构体是结构体是一种一种一种一种构造数据类型构造数据类型构造数据类型构造数据类型 用途:用途:用途:用途:把把把把不同类型不同类型不同类型不同类型的数据组合成一个整体的数据组合成一个整体的数据组合成一个整体的数据组合成一个整体-自定自

10、定自定自定义义义义数据类型数据类型数据类型数据类型 引入结构体的好处:引入结构体的好处:引入结构体的好处:引入结构体的好处:加强数据项之间的联系加强数据项之间的联系加强数据项之间的联系加强数据项之间的联系 如学生的基本信息,包括学号、姓名、性别、年龄、班如学生的基本信息,包括学号、姓名、性别、年龄、班如学生的基本信息,包括学号、姓名、性别、年龄、班如学生的基本信息,包括学号、姓名、性别、年龄、班级、成绩等数据项。这些数据项描述了一个学生的几个不同级、成绩等数据项。这些数据项描述了一个学生的几个不同级、成绩等数据项。这些数据项描述了一个学生的几个不同级、成绩等数据项。这些数据项描述了一个学生的几

11、个不同侧面。侧面。侧面。侧面。nononamenamesexsexageageclassnoclassnogradegrade独立的变量表示:独立的变量表示:独立的变量表示:独立的变量表示:数据项之间无关联数据项之间无关联数据项之间无关联数据项之间无关联nononamenamesexsexageageclassnoclassnogradegrade结构体变量表示:结构体变量表示:结构体变量表示:结构体变量表示:数据项为一个整体数据项为一个整体数据项为一个整体数据项为一个整体char no9;char no9;/学号学号学号学号char name20;char name20;/姓名姓名姓名姓名c

12、har sex;char sex;/性性性性别别别别unsigned int age;unsigned int age;/年龄年龄年龄年龄unsigned int classno;unsigned int classno;/班班班班级级级级float grade;float grade;/成绩成绩成绩成绩语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类型型C1 1 1 1、结构体类型的定义、结构体类型的定义、结构体类型的定义、结构体类型的定义structstruct 结构体类型名结构体类型名结构体类型名结构体类型名 数据类型名数据类型名数据类型名数据类型名1 1 成员名成员名成员名

13、成员名1 1;数据类型名数据类型名数据类型名数据类型名2 2 成员名成员名成员名成员名2 2;数据类型名数据类型名数据类型名数据类型名n n 成员名成员名成员名成员名n n;structstruct是是是是关键字关键字关键字关键字,不能省略不能省略不能省略不能省略合法标识符合法标识符合法标识符合法标识符可省可省可省可省:无名结构体无名结构体无名结构体无名结构体成员类型可以是成员类型可以是成员类型可以是成员类型可以是基本型或构造型基本型或构造型基本型或构造型基本型或构造型以分号以分号以分号以分号;结尾结尾结尾结尾 例例例例1 1:struct Student_Infostruct Student

14、_Info char no9;char no9;/学号学号学号学号 char name20;char name20;/姓名姓名姓名姓名 char sex;char sex;/性别性别性别性别 unsigned int age;unsigned int age;/年龄年龄年龄年龄 unsigned int classno;unsigned int classno;/班级班级班级班级 float grade;float grade;/成绩成绩成绩成绩;例例例例2 2:struct Datestruct Date int year;int year;/年年年年 int month;int month

15、;/月月月月 int day;int day;/日日日日;语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类型型C 在结构体中数据类型相同的成员,既可逐个、逐行分别在结构体中数据类型相同的成员,既可逐个、逐行分别在结构体中数据类型相同的成员,既可逐个、逐行分别在结构体中数据类型相同的成员,既可逐个、逐行分别定义,也可合并成一行定义,就象一次定义多个变量一样。定义,也可合并成一行定义,就象一次定义多个变量一样。定义,也可合并成一行定义,就象一次定义多个变量一样。定义,也可合并成一行定义,就象一次定义多个变量一样。struct Student_Infostruct Student_Inf

16、o char no9;char no9;/学学学学号号号号 char name20;char name20;/姓姓姓姓名名名名 char sex;char sex;/性别性别性别性别 unsigned int age;unsigned int age;/年龄年龄年龄年龄 unsigned int classno;unsigned int classno;/班级班级班级班级 float grade;float grade;/成绩成绩成绩成绩;struct Student_Infostruct Student_Info char no9,name20,sex;char no9,name20,sex

17、;unsigned int age,classno;unsigned int age,classno;float grade;float grade;struct Datestruct Date int year;int year;/年年年年 int month;int month;/月月月月 int day;int day;/日日日日;struct Datestruct Date int year,month,day;int year,month,day;注意:注意:注意:注意:结构类型只是用户自定义的一种结构类型只是用户自定义的一种结构类型只是用户自定义的一种结构类型只是用户自定义的一种数

18、据类型数据类型数据类型数据类型,用,用,用,用来定义描述结构的组织形式来定义描述结构的组织形式来定义描述结构的组织形式来定义描述结构的组织形式,不分配内存不分配内存不分配内存不分配内存,只有用它来定,只有用它来定,只有用它来定,只有用它来定义某个变量时,才会为该变量分配结构类型所需要大小义某个变量时,才会为该变量分配结构类型所需要大小义某个变量时,才会为该变量分配结构类型所需要大小义某个变量时,才会为该变量分配结构类型所需要大小的内存单元。的内存单元。的内存单元。的内存单元。所占内存的大小是它所包含的成员所占内所占内存的大小是它所包含的成员所占内所占内存的大小是它所包含的成员所占内所占内存的大

19、小是它所包含的成员所占内存大小之和存大小之和存大小之和存大小之和。struct Student_Infostruct Student_Info char no9,name20,sex;char no9,name20,sex;unsigned int age,classno;unsigned int age,classno;float grade;float grade;struct Student_Infostruct Student_Info student;student;例:例:例:例:语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类型型C2 2 2 2、结构体变量的定义和引

20、用、结构体变量的定义和引用、结构体变量的定义和引用、结构体变量的定义和引用structstruct 结构体类型名结构体类型名结构体类型名结构体类型名 数据类型名数据类型名数据类型名数据类型名1 1 成员名成员名成员名成员名1 1;数据类型名数据类型名数据类型名数据类型名n n 成员名成员名成员名成员名n n;struct struct 结构体类型名结构体类型名结构体类型名结构体类型名 变量名列表;变量名列表;变量名列表;变量名列表;结构体变量的定义结构体变量的定义结构体变量的定义结构体变量的定义l l 间接定义法:间接定义法:间接定义法:间接定义法:先定义结构类型,再定义结构变量先定义结构类型

21、,再定义结构变量先定义结构类型,再定义结构变量先定义结构类型,再定义结构变量 9 9字节字节字节字节2020字节字节字节字节1 1字节字节字节字节2 2字节字节字节字节2 2字节字节字节字节4 4字节字节字节字节nononamenamesexsexageageclassnoclassnogradegrade内存映像内存映像内存映像内存映像(BC(BC下下下下)struct struct student;student;struct Student_Infostruct Student_Info student1,student2;student1,student2;语语言言程程序序设设计计 第

22、第七七章章 构构造造数数据据类类型型C一次定义多个结构体类型变量一次定义多个结构体类型变量一次定义多个结构体类型变量一次定义多个结构体类型变量 定义指向结构体类型的指针变量定义指向结构体类型的指针变量定义指向结构体类型的指针变量定义指向结构体类型的指针变量 struct Student_Infostruct Student_Info *pstu;*pstu;间接定义法中几种错误的结构体变量的定义形式间接定义法中几种错误的结构体变量的定义形式间接定义法中几种错误的结构体变量的定义形式间接定义法中几种错误的结构体变量的定义形式 没有结构体类型名没有结构体类型名没有结构体类型名没有结构体类型名 St

23、udent_InfoStudent_Info student;student;缺省缺省缺省缺省structstruct关键字关键字关键字关键字 struct Pointstruct Point p;p;struct Pointstruct Point int x,y;int x,y;结构类型结构类型结构类型结构类型PointPoint定义定义定义定义在后在后在后在后 错啦!错啦!语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类型型C2 2 2 2、结构体变量的定义和引用、结构体变量的定义和引用、结构体变量的定义和引用、结构体变量的定义和引用structstruct 结构体类型名结构

24、体类型名结构体类型名结构体类型名 数据类型名数据类型名数据类型名数据类型名1 1 成员名成员名成员名成员名1 1;数据类型名数据类型名数据类型名数据类型名n n 成员名成员名成员名成员名n n;变量名列表变量名列表变量名列表变量名列表;结构体变量的定义结构体变量的定义结构体变量的定义结构体变量的定义l l 直接定义法:直接定义法:直接定义法:直接定义法:定义结构体类型的同时定义结构体变量定义结构体类型的同时定义结构体变量定义结构体类型的同时定义结构体变量定义结构体类型的同时定义结构体变量 struct Student_Infostruct Student_Info char no9;char

25、no9;/学学学学号号号号 char name20;char name20;/姓姓姓姓名名名名 char sex;char sex;/性别性别性别性别 unsigned int age;unsigned int age;/年龄年龄年龄年龄 unsigned int classno;unsigned int classno;/班级班级班级班级 float grade;float grade;/成绩成绩成绩成绩 student1,student2student1,student2;structstruct char no9;char no9;/学学学学号号号号 char name20;char n

26、ame20;/姓姓姓姓名名名名 char sex;char sex;/性别性别性别性别 unsigned int age;unsigned int age;/年龄年龄年龄年龄 unsigned int classno;unsigned int classno;/班级班级班级班级 float grade;float grade;/成绩成绩成绩成绩 student1,student2student1,student2;或或或或无名结构体定义,无名结构体定义,无名结构体定义,无名结构体定义,变量只能一次变量只能一次变量只能一次变量只能一次 语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类

27、型型C几点说明:几点说明:几点说明:几点说明:(1)(1)结构体类型与结构体变量概念不同结构体类型与结构体变量概念不同结构体类型与结构体变量概念不同结构体类型与结构体变量概念不同 类型类型类型类型:不分配内存;不分配内存;不分配内存;不分配内存;变量变量变量变量:分配内存分配内存分配内存分配内存 类型类型类型类型:不能赋值、存取、运算不能赋值、存取、运算不能赋值、存取、运算不能赋值、存取、运算;变量变量变量变量:可以可以可以可以(2)(2)结构体可以嵌套结构体可以嵌套结构体可以嵌套结构体可以嵌套 例:例:例:例:struct datestruct date int month;int mont

28、h;int day;int day;int year;int year;struct studentstruct student int num;int num;char name20;char name20;struct date birthdaystruct date birthday;stu;stu;numnumnamenamebirthdaybirthdaymonthmonthdaydayyearyear例:例:例:例:struct studentstruct student int num;int num;char name20;char name20;struct datestru

29、ct date int month;int month;int day;int day;int year;int year;birthdaybirthday;stu;stu;numnumnamenamebirthdaybirthdaymonthmonthdaydayyearyearstruct Pointstruct Point int x,y;int x,y;struct Imgstruct Img int tag;int tag;struct Img*pimg;struct Img*pimg;/正确,可以包含自身类型的指针正确,可以包含自身类型的指针正确,可以包含自身类型的指针正确,可以包

30、含自身类型的指针 struct Img img;struct Img img;/错误,不能包含自身类型的变量错误,不能包含自身类型的变量错误,不能包含自身类型的变量错误,不能包含自身类型的变量;(3)(3)结构类型中的成员名,可以与程序中的变量同名,它们结构类型中的成员名,可以与程序中的变量同名,它们结构类型中的成员名,可以与程序中的变量同名,它们结构类型中的成员名,可以与程序中的变量同名,它们代表不同的对象,互不干扰代表不同的对象,互不干扰代表不同的对象,互不干扰代表不同的对象,互不干扰 struct Student_Infostruct Student_Info student;stude

31、nt;char name20;char name20;(4)(4)结构体类型及变量的作用域和生存期与基本类型变量相结构体类型及变量的作用域和生存期与基本类型变量相结构体类型及变量的作用域和生存期与基本类型变量相结构体类型及变量的作用域和生存期与基本类型变量相同同同同 struct Student_Infostruct Student_Info char no9;char no9;/学学学学号号号号 char name20;char name20;/姓姓姓姓名名名名 char sex;char sex;/性别性别性别性别 unsigned int age;unsigned int age;/年龄

32、年龄年龄年龄 unsigned int classno;unsigned int classno;/班级班级班级班级 float grade;float grade;/成绩成绩成绩成绩 student1,student2student1,student2;例例例例 struct studentstruct student int num;int num;char name20;char name20;char sex;char sex;int age;int age;float score;float score;char addr30;char addr30;stu1,stu2stu1,st

33、u2;if(if(stu1=stu2stu1=stu2).(.()例例例例 struct studentstruct student int num;int num;char name20;char name20;char sex;char sex;int age;int age;float score;float score;char addr30;char addr30;stu,*pstu=&stustu,*pstu=&stu;strcpy(stu.name,zhangMing);strcpy(stu.name,zhangMing);stu.score=80;stu.score=80;ps

34、tu-score+=10;pstu-score+=10;printf(%s%f,stu.name,(*pstu).score);printf(%s%f,stu.name,(*pstu).score);语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类型型C 结构体变量的引用结构体变量的引用结构体变量的引用结构体变量的引用&引用规则引用规则引用规则引用规则l l结构体变量结构体变量结构体变量结构体变量不能整体引用不能整体引用不能整体引用不能整体引用,只能引用变量只能引用变量只能引用变量只能引用变量成员成员成员成员引用方式:引用方式:引用方式:引用方式:结构体变量名结构体变量名结构体变量

35、名结构体变量名.成员名成员名成员名成员名 /非指针型结构体变量的引用非指针型结构体变量的引用非指针型结构体变量的引用非指针型结构体变量的引用l l可以将一个可以将一个可以将一个可以将一个结构体变量赋值给另一个结构体变量结构体变量赋值给另一个结构体变量结构体变量赋值给另一个结构体变量结构体变量赋值给另一个结构体变量l l结构体嵌套时结构体嵌套时结构体嵌套时结构体嵌套时逐级引用逐级引用逐级引用逐级引用结构体指针结构体指针结构体指针结构体指针-成员名成员名成员名成员名 或或或或 (*结构体指针)结构体指针)结构体指针)结构体指针).成员名成员名成员名成员名/指针型结构体变量的引用指针型结构体变量的引

36、用指针型结构体变量的引用指针型结构体变量的引用成员成员成员成员(分量分量分量分量)运算符运算符运算符运算符结合性结合性结合性结合性:从左向右从左向右从左向右从左向右成员成员成员成员(分量分量分量分量)运算符运算符运算符运算符结合性结合性结合性结合性:从左向右从左向右从左向右从左向右例例例例 struct studentstruct student int num;int num;char name20;char name20;char sex;char sex;int age;int age;float score;float score;char addr30;char addr30;stu

37、1,stu2stu1,stu2;stu1.num=10;stu1.num=10;stu1.score=85.5;stu1.score=85.5;stu1.score+=stu2.score;stu1.score+=stu2.score;stu1.age+;stu1.age+;例例例例 struct studentstruct student int num;int num;char name20;char name20;char sex;char sex;int age;int age;float score;float score;char addr30;char addr30;stu1,s

38、tu2stu1,stu2;printf(“%d,%s,%c,%d,%f,%sn”,printf(“%d,%s,%c,%d,%f,%sn”,stu1stu1);();()stu1=101,“Wan Lin”,M,19,87.5,“DaLian”;(stu1=101,“Wan Lin”,M,19,87.5,“DaLian”;()结构体变量名结构体变量名结构体变量名结构体变量名.成员名成员名成员名成员名.子成员名子成员名子成员名子成员名最低级子成员名最低级子成员名最低级子成员名最低级子成员名例例例例 struct studentstruct student int num;int num;char

39、name20;char name20;char sex;char sex;int age;int age;float score;float score;char addr30;char addr30;stu1,stu2stu1,stu2;Stu2=stu1;(Stu2=stu1;()例例例例 struct studentstruct student int num;int num;char name20;char name20;struct date struct date int month;int month;int day;int day;int year;int year;birth

40、daybirthday;stu1,stu2,*pstu=&stu1stu1,stu2,*pstu=&stu1;numnumnamenamebirthdaybirthdaymonthmonthdaydayyearyearstu1.birthday.month=12;stu1.birthday.month=12;pstu-birthday.year=2008;pstu-birthday.year=2008;注意:注意:注意:注意:在利用指针引用结构体成员时,在利用指针引用结构体成员时,在利用指针引用结构体成员时,在利用指针引用结构体成员时,-和和和和 之间不能有空格。之间不能有空格。之间不能有空格

41、。之间不能有空格。语语言言程程序序设设计计 第第七七章章 构构造造数数据据类类型型C3 3 3 3、结构体变量的赋值、结构体变量的赋值、结构体变量的赋值、结构体变量的赋值 结构体变量初始化赋值结构体变量初始化赋值结构体变量初始化赋值结构体变量初始化赋值l l先定义结构体类型,再定义结构体变量时赋初值先定义结构体类型,再定义结构体变量时赋初值先定义结构体类型,再定义结构体变量时赋初值先定义结构体类型,再定义结构体变量时赋初值structstruct 结构体类型名结构体类型名结构体类型名结构体类型名 初值表初值表初值表初值表 ;struct struct 结构体类型名结构体类型名结构体类型名结构体

42、类型名 变量名变量名变量名变量名=成员成员成员成员1 1的值,的值,的值,的值,成员成员成员成员n n的值的值的值的值;注意:注意:注意:注意:赋初值时,赋初值时,赋初值时,赋初值时,中间的数据顺序必须与结构体成员中间的数据顺序必须与结构体成员中间的数据顺序必须与结构体成员中间的数据顺序必须与结构体成员的定义顺序一致,否则就会出现混乱。的定义顺序一致,否则就会出现混乱。的定义顺序一致,否则就会出现混乱。的定义顺序一致,否则就会出现混乱。struct Student_Infostruct Student_Info stu=20020306,ZhangMing,M,18,1,90;stu=2002

43、0306,ZhangMing,M,18,1,90;nononamenamesexsex ageage classnoclassno gradegradestruct Student_Infostruct Student_Info stu=18,ZhangMing,M,20020306,1,90;stu=18,ZhangMing,M,20020306,1,90;struct Datestruct Date int year;int year;/年年年年 int month;int month;/月月月月 int day;int day;/日日日日;struct Stu_Infostruct St

44、u_Info char no9;char no9;/学号学号学号学号 char name20;char name20;/姓名姓名姓名姓名 char sex;char sex;/性别性别性别性别 struct Datestruct Date birthday;birthday;/生日生日生日生日 unsigned int classno;unsigned int classno;/班级班级班级班级 float grade;float grade;/成绩成绩成绩成绩;struct Stu_Infostruct Stu_Info stu=20020306,ZhangMing,M,stu=200203

45、06,ZhangMing,M,1986,12,10,1986,12,10,1,1,90;90;语语言言程程序序设设计计 第第七七章章构构造造数数据据类类型型C3 3 3 3、结构体变量的赋值、结构体变量的赋值、结构体变量的赋值、结构体变量的赋值 结构体变量初始化赋值结构体变量初始化赋值结构体变量初始化赋值结构体变量初始化赋值l l定义结构体类型的同时,定义结构体变量并赋初值定义结构体类型的同时,定义结构体变量并赋初值定义结构体类型的同时,定义结构体变量并赋初值定义结构体类型的同时,定义结构体变量并赋初值struct struct 结构体类型名结构体类型名结构体类型名结构体类型名 初值表初值表初

46、值表初值表 变量名变量名变量名变量名=成员成员成员成员1 1的值,成员的值,成员的值,成员的值,成员2 2的值,的值,的值,的值,成员成员成员成员n n的值的值的值的值;struct Datestruct Date int year,month,day;int year,month,day;birthday=1986,12,10;birthday=1986,12,10;struct struct int year,month,day;int year,month,day;birthday=1986,12,10;birthday=1986,12,10;或或或或struct Student_Inf

47、ostruct Student_Info char no9;char no9;/学号学号学号学号 char name20;char name20;/姓名姓名姓名姓名 char sex;char sex;/性别性别性别性别 unsigned int age;unsigned int age;/年龄年龄年龄年龄 unsigned int classno;unsigned int classno;/班级班级班级班级 float grade;float grade;/成绩成绩成绩成绩 student=student=20020306,ZhangMing,M,18,1,90;20020306,Zhang

48、Ming,M,18,1,90;strcpy(stu1.no,stu.no);strcpy(stu1.no,stu.no);strcpy(stu1.name,stu.name);strcpy(stu1.name,stu.name);stu1.sex=stu.sex;stu1.sex=stu.sex;stu1.age=stu.age;stu1.age=stu.age;stu1.classno=stu.classno;stu1.classno=stu.classno;stu1.grade=stu.gradestu1.grade=stu.grade;struct Student_Infostruct

49、Student_Info stu;stu;strcpy(stu.no,20020306);strcpy(stu.no,20020306);strcpy(stu.name,ZhangMing);strcpy(stu.name,ZhangMing);stu.sex=M;stu.sex=M;stu.age=18;stu.age=18;stu.classno=1;stu.classno=1;stu.grade=90;stu.grade=90;struct Student_Infostruct Student_Info stu1;stu1;stu1=stu;stu1=stu;语语言言程程序序设设计计 第

50、第七七章章构构造造数数据据类类型型C3 3 3 3、结构体变量的赋值、结构体变量的赋值、结构体变量的赋值、结构体变量的赋值 结构体变量在程序中赋值结构体变量在程序中赋值结构体变量在程序中赋值结构体变量在程序中赋值 如果在定义结构体变量时并未对其赋初始值,那么在程如果在定义结构体变量时并未对其赋初始值,那么在程如果在定义结构体变量时并未对其赋初始值,那么在程如果在定义结构体变量时并未对其赋初始值,那么在程序中要对它赋值的话,就只能一个一个地对其成员序中要对它赋值的话,就只能一个一个地对其成员序中要对它赋值的话,就只能一个一个地对其成员序中要对它赋值的话,就只能一个一个地对其成员逐一赋值逐一赋值逐

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁