C语言课件-第10讲.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言课件-第10讲.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 10
- 资源描述:
-
1、2022-7-291 Program Design in C LanguagePage第十讲第十讲第十章第十章 结构体和共用体结构体和共用体 结构体类型的定义结构体类型的定义结构体类型变量的定义结构体类型变量的定义结构体类型变量的初始化和引用结构体类型变量的初始化和引用结构体数组结构体数组2022-7-292 Program Design in C LanguagePage9.1 结构体 结构体是结构体是数目固定数目固定、类型不同类型不同的若干变量的若干变量(成员成员)的有序集合,在内存中占据一段连续的存储空间。的有序集合,在内存中占据一段连续的存储空间。在程序中使用结构体,必须先做两项工作:
2、在程序中使用结构体,必须先做两项工作:1)定义结构体类型:描述该结构体的成员名称、)定义结构体类型:描述该结构体的成员名称、成员类型;成员类型;2)定义结构体变量:根据结构体类型为定义的)定义结构体变量:根据结构体类型为定义的结构体变量分配存储空间。结构体变量分配存储空间。2022-7-293 Program Design in C LanguagePage9.1.1 结构体类型的定义 结构体类型定义的一般格式为:结构体类型定义的一般格式为:struct 结构体名结构体名 类型名类型名1 成员名成员名1;类型名类型名2 成员名成员名2;类型名类型名n 成员名成员名n;2022-7-294 Pr
3、ogram Design in C LanguagePage9.1.1 结构体类型的定义 结构体类型定义的格式说明结构体类型定义的格式说明:struct:关键字,是定义结构体类型的标志。:关键字,是定义结构体类型的标志。结构体名结构体名:标识符,其命名规则同变量名。:标识符,其命名规则同变量名。struct 结构体名结构体名:结构体类型名,作用等同:结构体类型名,作用等同于于int、float等关键字,用于定义结构体变量。等关键字,用于定义结构体变量。类型名类型名1n:说明了结构体成员的数据类型。:说明了结构体成员的数据类型。成员名成员名1n:用户定义的一个或多个结构体:用户定义的一个或多个结
4、构体成员的名称,其命名规则同变量名。多个同成员的名称,其命名规则同变量名。多个同类型的成员彼此间用逗号分隔。类型的成员彼此间用逗号分隔。2022-7-295 Program Design in C LanguagePage9.1.1 结构体类型的定义 结构体类型定义举例结构体类型定义举例:struct _Student char id10;/*学号学号*/char name10;/*姓名姓名*/int score3;/*成绩成绩*/int sum;/*总分总分*/;2022-7-296 Program Design in C LanguagePage9.1.2 结构体类型变量的定义 结构体类型
5、的定义只是指出了该结构体的组成情结构体类型的定义只是指出了该结构体的组成情况,系统并不会为它分配实际的存储单元。应在况,系统并不会为它分配实际的存储单元。应在定义了结构体类型以后,再定义该结构体类型的定义了结构体类型以后,再定义该结构体类型的变量(简称结构体变量),以便在结构体变量中变量(简称结构体变量),以便在结构体变量中存放具体的数据。结构体变量的定义方式有三种:存放具体的数据。结构体变量的定义方式有三种:先定义结构体类型,再定义结构体变量。先定义结构体类型,再定义结构体变量。在定义结构体类型的同时定义结构体变量。在定义结构体类型的同时定义结构体变量。直接定义结构体变量。直接定义结构体变量
6、。2022-7-297 Program Design in C LanguagePage9.1.2 结构体类型变量的定义 方式一:方式一:若事先已定义了结构体类型,那么直接用下面的若事先已定义了结构体类型,那么直接用下面的格式定义结构体变量:格式定义结构体变量:结构体类型名结构体类型名 结构体变量名结构体变量名;例如:例如:struct _Student stu1,stu2;stu1和和stu2的存储形式为:的存储形式为:sumscore2score0name9name0id9id010字节字节10字节字节6字节字节2字节字节2022-7-298 Program Design in C Lan
7、guagePage9.1.2 结构体类型变量的定义 方式二:方式二:在定义结构体类型的同时定义结构体变量。在定义结构体类型的同时定义结构体变量。定义格式为:定义格式为:struct 结构体名结构体名 类型名类型名1 成员名成员名1;类型名类型名2 成员名成员名2;类型名类型名n 成员名成员名n;结构体变量名表结构体变量名表;2022-7-299 Program Design in C LanguagePage9.1.2 结构体类型变量的定义 例如:例如:struct _Student char id10;char name10;int score3;int sum;stu1,stu2;2022
8、-7-2910 Program Design in C LanguagePage9.1.2 结构体类型变量的定义 方式三:方式三:在定义结构体类型时可以直接定义结构体变量。在定义结构体类型时可以直接定义结构体变量。定义格式为:定义格式为:struct 类型名类型名1 成员名成员名1;类型名类型名2 成员名成员名2;类型名类型名n 成员名成员名n;结构体变量名表结构体变量名表;2022-7-2911 Program Design in C LanguagePage9.1.2 结构体类型变量的定义 例如:例如:struct char id10;char name10;int score3;int
9、sum;stu1,stu2;2022-7-2912 Program Design in C LanguagePage9.1.2 结构体类型变量的定义 关于结构体的说明:关于结构体的说明:类型与变量是不同的概念,应注意区分。类型与变量是不同的概念,应注意区分。系统可以对变量赋值、存取、运算,而类系统可以对变量赋值、存取、运算,而类型则不能。型则不能。编译时,系统只为变量分配存储单元,而编译时,系统只为变量分配存储单元,而类型则不分配。类型则不分配。结构体中的成员也可以是一个结构体变量,结构体中的成员也可以是一个结构体变量,即结构体的嵌套。即结构体的嵌套。结构体中的成员可以和程序中的变量同名,结构
10、体中的成员可以和程序中的变量同名,不同结构体中的成员也可以同名。不同结构体中的成员也可以同名。2022-7-2913 Program Design in C LanguagePage9.1.2 结构体类型变量的定义 例如:例如:struct date int year,month,day;struct _Student2 char id10;char name10;struct date birth;/*birth为结构体成员为结构体成员*/int score3;int sum;stu1,stu2;2022-7-2914 Program Design in C LanguagePage9.1.
11、2 结构体类型变量的定义 关于结构体的说明:关于结构体的说明:可以使用可以使用typedef关键字为结构体类型定义一关键字为结构体类型定义一个别名。个别名。例如:例如:typedef struct _Student char id10;char name10;int score3;int sum;Student;2022-7-2915 Program Design in C LanguagePage9.1.2 结构体类型变量的定义 以后就可以用以后就可以用Student代替结构体类型名来定义结代替结构体类型名来定义结构体变量了。构体变量了。例如:例如:Student stu1,stu2;等价于
12、:等价于:struct _Student stu1,stu2;2022-7-2916 Program Design in C LanguagePage9.1.3 结构体类型变量的初始化和引用 结构体变量的初始化类似于对数组的初始化,由于结构体变量的初始化类似于对数组的初始化,由于结构体变量的成员可以有不同的数据类型,所以各结构体变量的成员可以有不同的数据类型,所以各个初值必须与相应成员保持类型一致或兼容。个初值必须与相应成员保持类型一致或兼容。例例1:struct _Student char id10;char name10;int score3;int sum;stu1=20050001,胡
13、树伟胡树伟,87,71,81;2022-7-2917 Program Design in C LanguagePage9.1.3 结构体类型变量的初始化和引用 例例2:struct date int year,month,day;struct _Student2 char id10;char name10;struct date birth;int score3;int sum;stu2=20050002,李冬李冬,1987,5,3,75,85,76;2022-7-2918 Program Design in C LanguagePage9.1.3 结构体类型变量的初始化和引用 对结构体变量初
14、始化的说明:对结构体变量初始化的说明:对结构体变量进行初始化时,系统是按每个成员在对结构体变量进行初始化时,系统是按每个成员在结构体变量中的顺序一一对应赋初值的。若只对部结构体变量中的顺序一一对应赋初值的。若只对部分成员进行初始化,则只能给前面的若干成员赋值,分成员进行初始化,则只能给前面的若干成员赋值,而不允许跳过前面的成员给后面的成员赋值。而不允许跳过前面的成员给后面的成员赋值。例如:前面两例中结构体变量例如:前面两例中结构体变量stu1和和stu2的成员的成员sum没有获得指定初值,而是获得默认初值没有获得指定初值,而是获得默认初值0。2022-7-2919 Program Design
展开阅读全文