欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第六章结构与枚举.ppt

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

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

    第六章结构与枚举.ppt

    程序设计基础(C语言),Email:C语言交流群:,教师:,第六章 结构与枚举,掌握结构的定义和声明掌握结构成员的访问结构体变量的初始化掌握结构数组的定义和使用掌握结构指针的定义和使用掌握结构指针访问成员的方法掌握类型定义typedef的使用理解枚举的定义和使用,引入,数组是一组同类型数据的集合例如 int a10存放的是10个整数,数组a中只能存放整数,不能存放浮点数、长整形、字符串等例如 学生基本信息有:学号、姓名、性别、出生日期、籍贯、家庭住址、政治面貌、系部、专业、班级、课程、成绩等这些数据的类型不同,就不能存放在一个数组中,而且相同的数据类型也不便于存放在同一数组中,比如学号、姓名和家庭地址等,引入,基于以上因素,引入一种新的数据结构结构结构是一个或多个变量的集合,这些变量的类型可能是不同的数据类型,结构优点:便于组织和管理复杂的数据,6.1 结构基本知识,结构定义格式struct 结构名 成员表列;,struct studentchar num10;char name8;char sex;char birth10;char addr50;.;,结构名,成员,struct pointint x;int y;,结构名,成员,6.1 结构基本知识,结构变量的声明(定义)三种方法(1)先声明结构体类型再定义变量名例如:struct point pt1,pt2;,定义了pt1和pt2为struct point类型的变量,即它们具有struct point类型的结构.,结构类型,结构变量,pt1pt2,6.1 结构基本知识,结构变量的声明(定义)三种方法(2)在定义结构类型的同时定义变量,struct结构名 成员列表 变量名列表;,例如:struct pointint x;int y;pt1,pt2;,6.1 结构基本知识,结构变量的声明(定义)三种方法(3)直接定义结构变量,struct 成员表列 变量名表列;即不出现结构体名。,例如:struct int x;int y;pt1,pt2;,6.1 结构基本知识,结构变量成员的访问(引用),格式:结构变量名.成员名例如 struct point pt1,pt2;pt1.x=100;pt1.y=50;pt2.x=300;pt2.y=600;,6.1 结构基本知识,结构变量成员可以是结构,struct studentchar num10;char name8;char sex;char birth10;char addr50;struct course major10;stu1,stu2;,成员是结构变量,struct coursechar couname20;float score;,6.1 结构基本知识,结构变量成员的访问(引用)规则(1)不能将一个结构体变量作为一个整体进行输入和输出,例如 struct point pt1,pt2;pt1.x=100;pt1.y=50;pt2.x=300;pt2.y=600;,printf(“pt1=(%d,%d)n”,pt1);printf(“pt2=(%d,%d)n”,pt2);,printf(“pt1=(%d,%d)n”,pt1.x,pt1.y);printf(“pt2=(%d,%d)n”,pt2.x,pt2.y);,6.1 结构基本知识,结构变量成员的访问(引用)规则(2)如果成员本身又属一个结构类型,则要用若干个成员运算符,一级一级地找到最低的一级的成员。只能对最低级的成员进行赋值或存取以及运算。,struct studentchar num10;char name8;char sex;char birth10;char addr50;struct course major10;stu1,stu2;,struct coursechar couname20;float score;,stu1.name=“张三”;stu1.major.couname=“程序设计基础(C)”;stu1.major.score=95;,6.1 结构基本知识,结构变量成员的访问(引用)规则(3)结构成员可以和普通变量一样运算,例:struct point pt1,pt2;pt1.x=100;pt1.y=50;pt2.x=300;pt2.y=600;pt1.x+=50;pt1.y-=20;,pt1.x+?,6.1 结构基本知识,结构变量成员的访问(引用)规则(4)可以引用结构变量成员的地址,也可以引用结构变量的地址。,例 scanf(%d,/*输入pt1.x的值*/printf(%X,pt1);/*输出pt1的首地址*/,?,但不能用以下语句整体读入结构体变量,例如:scanf(%d,d,pt1);结构体变量的地址主要用作函数参数,传递结构体变量的地址。,6.1 结构基本知识,结构变量占用的存储空间,结构变量所占用的存储空间是该结构所有成员占用的存储空间和,struct studentchar num10;char name8;char sex;char birth10;char addr50;struct course major10;stu1,stu2;,struct coursechar couname20;float score;,stu1和stu2占用的空间都是319个字节,6.1 结构基本知识,结构变量占用的存储空间,结构变量所占用的存储空间是该结构所有成员占用的存储空间和,pt1和pt2占用的空间都是8个字节,struct pointint x;int y;pt1,pt2;,6.1 结构基本知识,结构变量的初始化方法(1)定义结构变量的同时初始化,例:struct point pt1=100,50,pt2=300,600;struct student stu1=“1210501304”,“张三”,F,“1994-08-30”,“重庆市”,“数据结构”,80;,6.1 结构基本知识,结构变量的初始化方法(2)先定义结构变量,然后初始化,注意:此时只能对结构变量的每个成员进行初始化,例:struct point pt1,pt2;pt1.x=100;pt1.y=50;pt2.x=300;pt2.y=600;,struct student stu1;strcpy(stu1.num,1210501304);strcpy(stu1.name,张三);stu1.sex=F;strcpy(stu1.birth,1994-08-30);strcpy(stu1.addr,重庆市);strcpy(stu1.major.couname,数据结构);stu1.major.score=80;,6.1 结构基本知识,例6-1 求两点距离,6.1 结构基本知识,例6-2 求矩形面积,6.2 结构数组,结构与普通的数据类型一样,也可以定义结构数组,格式:struct 结构名 数组名常量表达式;,6.2 结构数组,struct studentchar num10;char name8;char sex;char birth10;char addr50;;,struct student stu100;定义数组stu,可以存放100个学生的数据,数组stu的每个元素都是一个结构体变量,6.2 结构数组,结构数组的初始化方法,例:struct student stu2=“1210501304”,“张三”,F,“1994-08-30”,“重庆市”,“1210501330”,“李四”,M,“1994-10-05”,“四川省”;,struct studentchar num10;char name8;char sex;char birth10;char addr50;;,6.2 结构数组,结构数组的初始化方法,struct studentchar num10;char name8;char sex;char birth10;char addr50;stu2=“1210501304”,“张三”,F,“1994-08-30”,“重庆市”,“1210501330”,“李四”,M,“1994-10-05”,“四川省”;,6.2 结构数组,结构数组元素成员的引用,#include struct country int num;char name20;x5=1,China,2,USA,3,France,4,Englan,5,Spanish;void main()int i;for(i=3;i 5;i+)printf(%d%c,xi.num,xi.name0);,程序执行结果4E5S,6.2 结构数组,结构数组元素整体的引用,#include struct country int num;char name20;x5=1,China,2,USA,3,France,4,Englan,5,Spanish;void main()struct country ss;ss=x3;printf(“%d%sn”,ss.num,ss.name);,6.3 指向结构的指针,同基本类型的指针类似,结构也可以定义其指针变量,格式:struct 结构名*指针名,struct studentchar num10;char name8;char sex;char birth10;char addr50;;struct student stu;struct student*pstu;pstu=,6.3 指向结构的指针,通过指针访问结构成员的方法(1)用*访问,struct studentchar num10;char name8;char sex;char birth10;char addr50;;struct student stu;struct student*pstu;pstu=,(*pstu).sex=m;strcpy(*pstu).name,“王刚”),6.3 指向结构的指针,通过指针访问结构成员的方法(2)用-访问,struct studentchar num10;char name8;char sex;char birth10;char addr50;;struct student stu;struct student*pstu;pstu=,pstu-sex=m;strcpy(pstu-name,“王刚”),6.3 指向结构的指针,通过指针访问结构成员的方法,有以下说明和定义语句 struct student int age;char num8;struct student stu=20,200401“;struct student*p=以下选项中引用结构体变量成员的表达式错误的是 A)stu.num B)p-num C)(*p).num D)stu-age,6.4 类型定义,C语言通过typedef建立新的数据类型名例如 typedef short int16;int16 x,y;表示定义了两个短整形的变量x和y,6.4 类型定义,struct studentchar num10;char name8;char sex;char birth10;char addr50;;struct student stu1,stu2;,struct studentchar num10;char name8;char sex;char birth10;char addr50;;typedef struct student Student;Student stu1,stu2;,6.4 类型定义,struct studentchar num10;char name8;char sex;char birth10;char addr50;;typedef struct student Student;Student stu1,stu2;,typedef struct char num10;char name8;char sex;char birth10;char addr50;Student;Student stu1,stu2;,6.5 枚举,将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。,格式:enum 枚举名枚举列表;,例:enum weekdaysun,mon,tue,wed,thu,fri,sat;,6.5 枚举,说明:(1)在编译中,对枚举元素按常量处理,故称枚举常量。(2)枚举元素作为常量,它们是有值的,语言编译按定义时的顺序使它们的值为,当然定义时,可以人为改变他的值。(3)枚举值可以用来作判断比较。(4)一个整数不能直接赋给一个枚举变量。,本章小结,1.结构的优点:为便于管理和组织复杂的数据2.结构的定义格式:struct 结构名成员列表;3.结构成员引用4.指向结构的指针,以及用指针引用结构成员5.枚举,

    注意事项

    本文(第六章结构与枚举.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开