欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    C语言课件第10讲.ppt

    • 资源ID:3479872       资源大小:274.02KB        全文页数:33页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言课件第10讲.ppt

    第十讲,Begin:,第十章 结构体和共用体,结构体类型的定义 结构体类型变量的定义 结构体类型变量的初始化和引用 结构体数组,9.1 结构体,结构体是数目固定、类型不同的若干变量(成员)的有序集合,在内存中占据一段连续的存储空间。 在程序中使用结构体,必须先做两项工作: 1)定义结构体类型:描述该结构体的成员名称、成员类型; 2)定义结构体变量:根据结构体类型为定义的结构体变量分配存储空间。,9.1.1 结构体类型的定义,结构体类型定义的一般格式为: struct 结构体名 类型名1 成员名1; 类型名2 成员名2; ······ 类型名n 成员名n; ;,9.1.1 结构体类型的定义,结构体类型定义的格式说明: struct:关键字,是定义结构体类型的标志。 结构体名:标识符,其命名规则同变量名。 struct 结构体名:结构体类型名,作用等同于int、float等关键字,用于定义结构体变量。 类型名1n:说明了结构体成员的数据类型。 成员名1n:用户定义的一个或多个结构体成员的名称,其命名规则同变量名。多个同类型的成员彼此间用逗号分隔。,9.1.1 结构体类型的定义,结构体类型定义举例: struct _Student char id10; /*学号*/ char name10; /*姓名*/ int score3; /*成绩*/ int sum; /*总分*/ ;,9.1.2 结构体类型变量的定义,结构体类型的定义只是指出了该结构体的组成情况,系统并不会为它分配实际的存储单元。应在定义了结构体类型以后,再定义该结构体类型的变量(简称结构体变量),以便在结构体变量中存放具体的数据。结构体变量的定义方式有三种: 先定义结构体类型,再定义结构体变量。 在定义结构体类型的同时定义结构体变量。 直接定义结构体变量。,9.1.2 结构体类型变量的定义,方式一: 若事先已定义了结构体类型,那么直接用下面的格式定义结构体变量: 结构体类型名 结构体变量名; 例如:struct _Student stu1, stu2; stu1和stu2的存储形式为:,9.1.2 结构体类型变量的定义,方式二: 在定义结构体类型的同时定义结构体变量。 定义格式为: struct 结构体名 类型名1 成员名1; 类型名2 成员名2; ······ 类型名n 成员名n; 结构体变量名表;,9.1.2 结构体类型变量的定义,例如: struct _Student char id10; char name10; int score3; int sum; stu1, stu2;,9.1.2 结构体类型变量的定义,方式三: 在定义结构体类型时可以直接定义结构体变量。定义格式为: struct 类型名1 成员名1; 类型名2 成员名2; ······ 类型名n 成员名n; 结构体变量名表;,9.1.2 结构体类型变量的定义,例如: struct char id10; char name10; int score3; int sum; stu1, stu2;,9.1.2 结构体类型变量的定义,关于结构体的说明: 类型与变量是不同的概念,应注意区分。 系统可以对变量赋值、存取、运算,而类型则不能。 编译时,系统只为变量分配存储单元,而类型则不分配。 结构体中的成员也可以是一个结构体变量,即结构体的嵌套。 结构体中的成员可以和程序中的变量同名,不同结构体中的成员也可以同名。,9.1.2 结构体类型变量的定义,例如: struct date int year, month, day; ; struct _Student2 char id10; char name10; struct date birth; /*birth为结构体成员*/ int score3; int sum; stu1, stu2;,9.1.2 结构体类型变量的定义,关于结构体的说明: 可以使用typedef关键字为结构体类型定义一个别名。 例如:typedef struct _Student char id10; char name10; int score3; int sum; Student;,9.1.2 结构体类型变量的定义,以后就可以用Student代替结构体类型名来定义结构体变量了。 例如: Student stu1, stu2; 等价于: struct _Student stu1, stu2;,9.1.3 结构体类型变量的初始化和引用,结构体变量的初始化类似于对数组的初始化,由于结构体变量的成员可以有不同的数据类型,所以各个初值必须与相应成员保持类型一致或兼容。 例1:struct _Student char id10; char name10; int score3; int sum; stu1 = “20050001“, “胡树伟“, 87, 71, 81;,9.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;,9.1.3 结构体类型变量的初始化和引用,对结构体变量初始化的说明: 对结构体变量进行初始化时,系统是按每个成员在结构体变量中的顺序一一对应赋初值的。若只对部分成员进行初始化,则只能给前面的若干成员赋值,而不允许跳过前面的成员给后面的成员赋值。 例如:前面两例中结构体变量stu1和stu2的成员sum没有获得指定初值,而是获得默认初值0。,9.1.3 结构体类型变量的初始化和引用,引用结构体变量的一般方式为: 结构体变量名成员名 其中:“为结构体成员运算符,1级运算符。 例如:stu1.sum表示对结构体变量stu1中的sum成员进行引用。,9.1.3 结构体类型变量的初始化和引用,结构体变量的引用规则: 不能将结构体变量作为一个整体进行输入和输出。 例如:struct _Student3 long num; int age; char sex; st; 下面的写法是错误的: scanf(“%ld%d%c“, ,9.1.3 结构体类型变量的初始化和引用,结构体变量的引用规则: 内嵌结构体成员的引用,必须逐层使用成员名定位,找到最底层的成员。 例如: struct date int year, month, day; ; struct _Student2 char id10, name10; struct date birth; int score3, sum; stu2 = “20050002“, “李冬“, 1987, 5, 3, 75, 85, 76; printf(“birthday=%d,%d,%dn“, stu2.birth.year, stu2.birth.month, stu2.birth.day);,9.1.3 结构体类型变量的初始化和引用,结构体变量的引用规则: 若结构体的成员是字符数组,可对其进行直接引用。 例如: struct _Student char id10; char name10; int score3; int sum; stu1; scanf(“%s%s“, stu1.id, stu1.name); printf(“id=%s, name=%s“, stu1.id, stu1.name);,9.1.3 结构体类型变量的初始化和引用,结构体变量的引用规则: 若结构体的成员是数值型数组,则应逐个引用数组中的元素。 例如: struct _Student char id10; char name10; int score3; int sum; stu1; scanf(“%d%d%d“, ,9.1.3 结构体类型变量的初始化和引用,例 结构体变量的输入和输出 typedef struct _Student char id10, name10; int score3, sum; Student; /*定义结构体类型别名*/ void main( ) Student stu1, stu2; /*定义结构体变量*/ scanf(“%s%s%d%d%d“, stu1.id, stu1.name, ,9.1.4 结构体数组,结构体数组的每个数组元素都是一个结构体变量,它们都分别包括各个成员项。 结构体数组的定义 和定义结构体变量的方法相似,只需说明其为数组即可。 例1: struct _Student char id10, name10; int score3, sum; ; struct _Student stu50;,9.1.4 结构体数组,例2: struct _Student char id10, name10; int score3, sum; stu50; 例3: struct char id10, name10; int score3, sum; stu50;,9.1.4 结构体数组,结构体数组的初始化 结构体数组的初始化与普通数组的初始化相似。 例如: struct _Student char id10, name10; int score3, sum; ; struct _Student stu3= “20050001“, “胡树伟“, 87, 71, 81, “20050002“, “李冬“, 75, 85, 76, “20050003“, “梁若婵“, 86, 75, 90;,9.1.4 结构体数组,结构体数组的引用 结构体数组的引用与结构体变量的引用相似。 例 结构体数组的引用 typedef struct _Student char id10; char name10; int score3; int sum; Student; /*定义结构体类型别名*/,9.1.4 结构体数组,void main( ) int i, j; Student stu50; /*定义结构体数组*/ for(i=0; i50; i+) scanf(“%s%s%d%d%d“, stui.id, stui.name, ,9.1.4* 结构体数组名作为函数参数,结构体数组名作为函数参数与普通数组名作为函数参数相似,传递的也是数组的首地址。 例 结构体数组名作为函数参数 typedef struct _Student char id10; char name10; int score3; int sum; Student; /*定义结构体类型别名*/ void sort(Student stu , int); /*函数原型声明*/,9.1.4* 结构体数组名作为函数参数,void main( ) int i, j; Student stu50; /*定义结构体数组*/ for(i=0; i50; i+) scanf(“%s%s%d%d%d“, stui.id, stui.name, ,9.1.4* 结构体数组名作为函数参数,void sort(Student stu , int count) int i, j; Student t; for(i=1; i=count-1; i+) for(j=1; j=count-i; j+) if(stuj-1.sumstuj.sum) t = stuj-1; stuj-1 = stuj; stuj = t; ,The End,上机实验内容: (1)熟悉结构体类型和结构体变量的定义和引用 (2)熟悉结构体数组的定义和引用 (3)实验教程第九章 结构体和共用体 实验一(1)(2),

    注意事项

    本文(C语言课件第10讲.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开