C语言程序设计教学做一体化-模块9.ppt
《C语言程序设计教学做一体化-模块9.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教学做一体化-模块9.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计语言程序设计教学做一体化教学做一体化 主编主编 滕泓虬滕泓虬 中国水利水电出版社中国水利水电出版社 模块九模块九构造数据类型构造数据类型9.1 结构体结构体 l1、掌握结构体类型的定义l2、掌握结构体类型变量的定义、初始化和 应用 本节学习目标:9.1.1结构体类型的定义结构体类型的定义l结构体是由不同数据类型的数据组成的集合体,它包含若干个成员。在说明和使用结构体之前必须先定义它,也就是构造它。结构体定义实际上是说明结构体是由哪些成员所组成,以及成员的数据类型。9.1.1结构体类型的定义结构体类型的定义 l案例9-1:使用结构体类型描述学生的基本信息,需要包含学号、姓名、性别、
2、年龄和入学成绩。lstruct studentll char num11;l char*name;l char sex;l int age;l float score;l;结构体类型名,其中struct是保留字,student 是结构体名 结构体由5个成员组成。第一个成员为num,字符数组;第二个成员为name,字符数组;第三个成员为sex,字符变量;第四个成员为age,整型变量;第五个成员为score,实型变量。提示:提示:在大括号后的分号是不可少知识连接知识连接 l定义一个结构的一般形式为:struct 结构体名 结构体成员表;;9.1.2结构体变量的定义结构体变量的定义l定义结构体类型相
3、当于做了一个模型,但是其中并没有具体数据,系统不对它分配实际的内存单元。为了能在程序中使用结构体类型的数据,就要定义结构体类型的变量,并且在其中存放具体的数据。9.1.2结构体变量的定义结构体变量的定义 l案例9-2:使用结构体student定义结构体变量jack和rose。struct student char num11;char*name;char sex;int age;float score;struct student jack;struct student rose;提示:提示:在这种定义方法中,保留字struct和结构名student必须同时出现。知识连接知识连接l1、结构体变
4、量同其他变量一样,也必须先定义,然后才能使用。首先定义结构类型,然后定义结构变量。l2、结构变量定义的一般形式如下:l struct 结构体名 ll 结构体成员表;l;lstruct 结构体名 结构体变量名;9.1.3结构体变量的初始化结构体变量的初始化 l对结构体变量的初始化,就是在定义该结构体变量的同时,对其成员变量赋初值。l结构体变量初始化的一般形式如下:l struct 结构体名 结构体变量名=初始数据;9.1.3结构体变量的初始化结构体变量的初始化l案例9-3:对结构体student类型的结构体变量jack和rose初始化。l#include lvoid main()ll struc
5、t studentl l int num;l char*name;l char sex;l float score;l ;l struct student jack=2010,jack,M,765.4;l struct student rose=2012,rose,F,876.5;l printf(The message of student jack:n);l printf(Number=%dnName=%sn,jack.num,jack.name);l printf(Sex=%cnScore=%fn,jack.sex,jack.score);l printf(The message of
6、student rose:n);l printf(Number=%dnName=%sn,rose.num,rose.name);l printf(Sex=%cnScore=%fn,rose.sex,rose.score);l知识连接知识连接l1、初始化数据的个数要与成员的个数相同。l2、初始化数据的类型要与相应的成员变量的类型一致。9.1.4结构体变量成员的引用结构体变量成员的引用 l结构体变量被定义之后,就可以在程序中使用它。在对结构体进行引用时,不能对一个结构体变量作为一个整体直接进行操作,一般只能对结构体变量中的各个成员进行直接操作。l结构体变量成员的引用的两种方式:l用结构体成员运算符
7、方式。l 结构变量名结构变量名.成员名成员名 l用指针方式。9.1.4结构体变量成员的引用结构体变量成员的引用l案例9-4:引用结构体student类型的结构体变量jack和jack2的成员。l struct student jack;l struct student jack2;l jack.num=2010;l jack.name=jack;l printf(input sex and score:n);l scanf(%c%f,&jack.sex,&jack.score);9.2指向结构体类型数据的指针指向结构体类型数据的指针l学习目标l1、理解结构体指针变量的定义。l2、掌握结构体指针
8、变量的运用。l3、了解结构体数组变量的定义和初始化。9.2.1指向结构体变量的指针指向结构体变量的指针 l结构体指针变量即指向结构体变量的指针,它是一个指针变量。结构体指针变量中的值是所指向的结构体变量的首地址。通过结构体指针即可访问该结构体变量,这与数组指针和函数指针的情况是相同的。9.2.1指向结构体变量的指针指向结构体变量的指针l定义结构体指针变量的一般形式为:lstruct 结构体名*结构体指针变量名l struct student boy=2010,jack,M,607.3;l struct student*ps;l ps=&boy;9.2.1指向结构体变量的指针指向结构体变量的指针
9、l定义结构体指针变量后,就可以用指针变量来引用结构体变量的各个成员。l用指针变量引用结构体成员的一般形式为:l(*结构体指针变量名).成员名 l或者:l结构体指针变量名-成员名 l例如:l(*ps).numl或者:lps-num 9.2.1指向结构体变量的指针指向结构体变量的指针l#includelstruct studentll int num;l char*name;l char sex;l float score;l;lvoid main()ll struct student boy=2010,jack,M,607.3;l struct student*ps;l ps=&boy;l pr
10、intf(Number=%dnName=%sn,boy.num,boy.name);l printf(Sex=%cnScore=%fnn,boy.sex,boy.score);l printf(Number=%dnName=%sn,(*ps).num,(*ps).name);l printf(Sex=%cnScore=%fnn,(*ps).sex,(*ps).score);l printf(Number=%dnName=%sn,ps-num,ps-name);l printf(Sex=%cnScore=%fnn,ps-sex,ps-score);l提示:提示:(*ps)两侧的括号不可少,因为成
11、员符“.”的优先级高于“*”。如果去掉括号写作*pstu.num则等效于*(pstu.num),这样,意义就完全不对了。9.2.2指向结构体数组的指针指向结构体数组的指针 l结构体数组是其元素都是具有相同结构体类型的结构体变量。与一般数组一样,结构体数组也是要先定义后使用。lstruct student stu5=l 2010,jack,M,523.45,l 2012,tom,M,634.567,l 2013,rose,F,492.7891,l 2014,kate,F,787,l 2015,jim,M,580.9,l ;l案例9-6:用指针变量输出结构体数组。l#includelstruct
12、studentll int num;l char*name;l char sex;l float score;l;lvoid main()ll struct student stu5=l 2010,jack,M,523.45,l 2012,tom,M,634.567,l 2013,rose,F,492.7891,l 2014,kate,F,787,l 2015,jim,M,580.9,l ;l struct student*ps;l printf(No.tNametSextScoretn);l for(ps=stu;psnum,ps-name,ps-sex,ps-score);l在main函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教学 一体化 模块
限制150内