(精品)c语言电子教案10.ppt
《(精品)c语言电子教案10.ppt》由会员分享,可在线阅读,更多相关《(精品)c语言电子教案10.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、UNIX C编程编程yyyy-M-1age *第第10章章 结构体与共用体结构体与共用体知识点:知识点:结构体、共用体、枚举类型的定义、引用结构体、共用体、枚举类型的定义、引用用用typedef定义类型定义类型 结构体变量、数组的使用结构体变量、数组的使用位段位段重点:重点:结构体、共用体的定义、引用结构体、共用体的定义、引用结构体变量、数组的使用结构体变量、数组的使用难点:难点:位段的使用位段的使用UNIX C编程编程yyyy-M-2age *q 结构体(结构体(struct)是一种构造数据类型(由基本数据类型派)是一种构造数据类型(由基本数据类型派生的)生的)q 可以将一些不同的数据类型组
2、合在一起使用可以将一些不同的数据类型组合在一起使用q 是一种自定义的数据类型是一种自定义的数据类型10.1 结构体结构体UNIX C编程编程yyyy-M-3age *q 结构体类型定义结构体类型定义struct 结构体名结构体名 数据类型数据类型 成员名成员名1;数据类型数据类型 成员名成员名2;数据类型数据类型 成员名成员名n;10.1 结构体结构体struct是是关键字关键字,不能省略不能省略合法标识符可省合法标识符可省成员类型可以是基本型或构造型成员类型可以是基本型或构造型注意不能忽略注意不能忽略;UNIX C编程编程yyyy-M-4age *v 例:例:structstudentint
3、 num;charname20;charsex;intage;floatscore;charaddr30;10.1 结构体结构体结构体类型定义描述结构结构体类型定义描述结构的组织形式的组织形式,不分配内存不分配内存UNIX C编程编程yyyy-M-5age *q 结构体变量的定义结构体变量的定义v 声明结构体类型后,定义变量声明结构体类型后,定义变量 struct 结构体名结构体名 类型标识符类型标识符 成员名成员名;类型类型标识符标识符 成员名成员名;.;struct 结构体名结构体名 变量名表列变量名表列;10.1 结构体结构体struct student int num;char nam
4、e20;char sex;int age;float score;char addr30;struct student stu1,stu2;UNIX C编程编程yyyy-M-6age *v 声明类型的同时定义变量声明类型的同时定义变量 struct 结构体名结构体名 类型类型标识符标识符 成员名成员名;类型类型标识符标识符 成员名成员名;.变量名表列变量名表列;10.1 结构体结构体struct student int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;UNIX C编程编程yyyy-M-7age
5、 *v 直接定义结构体类型变量直接定义结构体类型变量 struct 类型标识符类型标识符 成员名成员名;类型标识符类型标识符 成员名成员名;.变量名表列变量名表列;10.1 结构体结构体struct int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;这种方式没有定义结构类型,这种方式没有定义结构类型,以后无法利用这一结构类型来定义以后无法利用这一结构类型来定义其他的变量。实际应用不采用其他的变量。实际应用不采用UNIX C编程编程yyyy-M-8age *10.1 结构体结构体2Byte20Byte1B
6、yte2Byte4Byte30Bytenumname20sexagescoreaddr30每个结构变量均占每个结构变量均占连续的连续的59ByteUNIX C编程编程yyyy-M-9age *v 结构体的嵌套结构体的嵌套结构体的成员也可以是结构体结构体的成员也可以是结构体10.1 结构体结构体例例struct date int month;int day;int year;struct studentint num;char name20;struct date birth;stu;numname20birthmonthdayyear也可也可struct studentint num;char
7、 name20;struct date int month;int day;int year;birth;stu;UNIX C编程编程yyyy-M-10age *q 结构体变量的引用结构体变量的引用v 一个结构体变量由若干个成员组成。一个结构体变量由若干个成员组成。v 结构体变量的引用是通过引用其成员的形式来实现的结构体变量的引用是通过引用其成员的形式来实现的 结构变量名结构变量名.结构成员名结构成员名 stu1.score,stu2.namev 每个结构体成员都可当做一个变量来使用每个结构体成员都可当做一个变量来使用v 结构体变量的成员使用方法与普通内存变量一样。可以对结构体变量的成员使用方
8、法与普通内存变量一样。可以对其赋值、参与运算或作为函数的参数。其赋值、参与运算或作为函数的参数。stu1.score=60;scanf(%f,&stu1.score);stu2=stu1;printf(“stu2.name=%sn”,stu2.name);stu.birth.day=20;10.1 结构体结构体UNIX C编程编程yyyy-M-11age *q 结构体变量的初始化结构体变量的初始化v 在定义结构体类型的同时定义结构体变量,并初始化在定义结构体类型的同时定义结构体变量,并初始化10.1 结构体结构体例例 struct student int num;char name20;cha
9、r sex;int age;float score;char addr30;stu1=1,Mike,M,20,89,52 Xuefu Road;UNIX C编程编程yyyy-M-12age *v 先定义结构体类型,再定义结构体变量并初始化先定义结构体类型,再定义结构体变量并初始化10.1 结构体结构体例例 struct student int num;char name20;char sex;int age;float score;char addr30;;struct student stu1=1,Mike,M,20,89,52 Xuefu Road;struct student stru2
10、=2,Ros,F,19,90,52 Xuefu Road;UNIX C编程编程yyyy-M-13age *q 结构体数组结构体数组v 数组的每个元素都是结构体类型的数据数组的每个元素都是结构体类型的数据v 定义结构体数组(与定义结构体变量一样,有三种形式)定义结构体数组(与定义结构体变量一样,有三种形式)10.1 结构体结构体例例 struct student int num;char name20;char sex;int age;float score;char addr30;struct student stu3;numname20sexagescoreaddr30stu0stu1stu
11、2 177Byte UNIX C编程编程yyyy-M-14age *v 结构体数组的初始化结构体数组的初始化10.1 结构体结构体例例 struct student int num;char name20;char sex;int age;float score;char addr30;struct student stu3=1,Mike,M,18,87.5,103 Beijing Road,2,John,M,19,99,130 Shanghai Road,3,Rose,F,20,78.5,10 Zhongshan Road;UNIX C编程编程yyyy-M-15age *例例:对候选人得票的
12、统计程序。设有对候选人得票的统计程序。设有3个候选人,每次输入一个个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。得票的候选人的名字,要求最后输出各人得票结果。#include struct person char name20;int count;/*获得的选票数*/leader3=Li,0,Zhang,0,Fun,0;main()inti,j;charleader_name20;/*候选人姓名*/for(i=1;i=10;i+)scanf(%s,leader_name);for(j=0;j3;j+)if(strcmp(leader_name,leaderj.name)=
13、0)leaderj.count+;printf(n);for(i=0;i3;i+)printf(%5s:%dn,leaderi.name,leaderi.count);UNIX C编程编程yyyy-M-16age *q 用结构体变量作函数参数用结构体变量作函数参数v 用结构体变量的成员作参数用结构体变量的成员作参数 与基本类型变量作为函数实参用法相同,与基本类型变量作为函数实参用法相同,传值方式传值方式v 用结构体变量作参数用结构体变量作参数 形参与实参都定义为同类型结构体变量形参与实参都定义为同类型结构体变量 实参把结构体变量的成员传递给形参对应的成员,是实参把结构体变量的成员传递给形参对应
14、的成员,是传传值方式,值方式,多值传递多值传递 例:有一个结构体变量例:有一个结构体变量stu,内含学生学号、姓名和,内含学生学号、姓名和3门课门课的成绩。要求在的成绩。要求在main函数中赋以值,在另一函数函数中赋以值,在另一函数print中将中将它们打印输出。今用结构体变量作函数参数。它们打印输出。今用结构体变量作函数参数。10.1 结构体结构体UNIX C编程编程yyyy-M-17age *例:例:#include#define FORMAT“n%dn%sn%fn%fn%fn”struct student int num;char name20;float score3;main()vo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 语言 电子 教案 10
限制150内