虎贲C语言第十章.ppt

虎贲C语言第十章.ppt

ID:49380560

大小:215.50 KB

页数:18页

时间:2020-02-04

虎贲C语言第十章.ppt_第1页
虎贲C语言第十章.ppt_第2页
虎贲C语言第十章.ppt_第3页
虎贲C语言第十章.ppt_第4页
虎贲C语言第十章.ppt_第5页
资源描述:

《虎贲C语言第十章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第十章结构体与共用体____________虎贲讲师:路谨铭____________章节知识点:10.1结构体10.2共用体10.3类型定义符typedef笔试考点分布机试考点分布与分析知识点所占分值考试概率难易程度结构体变量的定义和初始化2分33%★★★★结构体与数组2分85%★★★★结构体与指针2分100%★★★★★共用体变量的定义和初始化2分60%★★★★动态链表2分20%★★★★★typedf定义数据类型2分30%★知识点所占分值考试概率难易程度结构体的正确使用15分15%★★★★链表的一些基本操作30分12%★★★★★10.1.1

2、结构体的定义结构是一种“构造”而成的数据类型,在使用之前必须先定义,然后才可能用来定义相应的变量、数组等。定义如下:struct结构名{成员列表;};例如:structstd{intnum;charname[10];floatscore;};10.1结构体方法一:先定义结构体,再说明结构体变量方法二:在定义结构体的同时说明结构体变量方法三:直接说明结构变量structstd{intnum;charname[10];floatsco;};structstdstu1,stu2;structstd{intnum;charname[10];floa

3、tsco;}stu1,stu2;struct{intnum;charname[10];floatsco;}stu1,stu2;在方法一中,先定义一个结构体,名字叫std,这种结构体内部含有num,name,sco三个数据成员。结构体一旦定义,我们就可以拿结构体名来定义结构体变量。在本例中,定义stu1,那么stu1是std的一个变量。在方法二中,定义结构体的同时定义了结构体变量,此时,stu1,stu2就是std的两个变量。方法三是一种不常见的方法,直接定义结构体变量,那么stu1,stu2都含有num,name,sco三个数据。但是当我们

4、需要定义新的变量时,比较麻烦,这里我们不推荐大家使用方法三。10.1.2结构体变量的定义结构变量的赋值即是给各个赋值,可用输入输出语句来实现。结构变量的初始化是指在结构变量说明的同时,给它的各个成员赋初值,初始化的格式为:struct结构名{结构成员列表;}结构变量={初始数据表};10.1.3结构变量的赋值和初始化如:structstudents1={35,"lisi",'F',1978,10,24};结构变量成员的表示一般形式为:结构变量名.成员名如:stu1.sco若成员本身又是一个结构,则必须逐级找到最低级的成员才可以使用,一般形式

5、为:外层结构变量.外层成员名.内层成员名如:stu1.birth.year10.1.4结构体变量的引用假设一个班级内有50个学生,那么我们要定义50个结构体变量吗。而我们知道数组元素本身相当于一个变量,那么我们能否对数组元素定义为一个结构体呢?例如:structstd{intnum;charname[10];floatsco;}st[2]={{35,"lisi",'F',1978,10,24},{36,"wangwu",'T',{1980,2,3}};10.1.5结构体与数组1.函数调用时结构体变量的数据传递(1)结构体变量中的成员可以作为

6、实参单独进行传递。(2)结构体变量作为实参进行整体传递。2.结构体变量的地址作为数据进行传递时在函数调用时,地址传递是一种常见的数据传递方式,同样,结构体变量的地址也可以作为实参进行传递。这时对应的形参应该是一个基类型相同的结构体类型的指针变量。10.1.6结构体与函数1、结构指针的说明形式为:struct结构名*结构指针变量名10.1.7结构指针变量的说明和使用2、建立指针与结构体的联系例如:structstudents[4],s1;structstudent*ps1,*ps2;ps1=&s1;ps2=s;3、结构指针变量访问结构变量各个

7、成员的一般形式为:(*结构指针变量).成员名或结构指针变量--->成员例如:structstu{intnum;char*name;charsex;floatscore;}s1;structstudent*ps1;ps1=&s1;则:s1.num等价与ps1->num等价于(*ps1).num10.2.1动态存储分配“动态存储分配”的内存空间分配方式,它并不是在编译时分配内存空间,而是在程序执行期间根据需要,通过“申请”分配指定的内存空间;当所分配的存储空间闲置不用时,可以随时将其释放,由系统安排另作它用。这样的话就大大提高了计算机内存空间的

8、使用效率。10.2动态链表动态内存分配有关的函数:malloc函数、free函数和calloc函数。这些函数都是从stdio库函数中调用的,所以在使用时必须添加预编译#inclu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。