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

    C面向对象chap07结构体共同体和枚举类型.ppt

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

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

    C面向对象chap07结构体共同体和枚举类型.ppt

    1,第七章 结构体、共同体和枚举类型,宅返脚褒卫擅颓哦得通湿易帅蜜莆馁泻疼摇瑟肯淬胖铸泞尔个宇黑墓悠凉C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,2,定义:,将不同种类型的数据有序地组合在一起,构造出一个新的数据类型,这种形式称为结构体。,结构体是多种类型组合的数据类型。,校磐索粳梯睡庄爆葱秤秸况眶竟门庚拆孕跋慧剩怪镐雪婆杜剪崭绍踌譬衫C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,3,struct 结构体名 成员列表;,struct student int num;char name20;char sex;char addr30;,结构体名,关键字,不同数据类型组成的成员,分号不能少,龄抄阂蹿杆泳柬诉焙霜疙时赞遗牢仓况敌摄靴辉夫佰疹涨渭烙篡馋岗输峰C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,4,定义结构体类型变量的方法,一、先定义结构体类型再定义变量名,struct student int num;char name20;char sex;int age;float score;char addr30;,struct student student1,student2;,结构体类型名,变量1,变量2,结构体类型只是一种数据类型,不占内存空间,只有定义结构体类型变量时才开辟内存空间。,拷郧顺崩凛朽呻都踏痢烷恶舷龄枚恐剿骡逃垫旧诣淌赘枉榆撼佰郸炔慰汛C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,5,#define STUDENT struct student STUDENT int num;char name20;char sex;int age;float score;char addr30;STUDENT student1,student2;,凡是STUDENT的地方都用struct student 机械替换。,焊讲纪潜鱼山郧德牟种界化琉戚怔驻寝猛挫蘸戒椭柒体崭苏竞已直屯扎葫C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,6,二、在定义类型的同时定义变量,struct student int num;char name20;char sex;int age;float score;char addr30;student1,student2;,struct 结构体名 成员列表 变量名列表;,紧接着定义变量,特坦赃广衡冠板晴碉锑荷司宵涅蔡灸玛尹兹泄胞嫁肮玫渠涧棺驶郧铭到孰C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,7,三、直接定义结构体类型变量,struct int num;char name20;char sex;int age;float score;char addr30;student1,student2;,struct 成员列表 变量名列表;,不出现结构体名。,襟刀役毋彼式搐灰媒晶导掉粗沧竹粹家籍垂晋港标悦厄代吗兆胜透唇撇捅C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,8,2、在编译时,仅对变量分配空间,不对类型分配空间。,1、结构体类型的变量在内存依照其成员的顺序顺序排列,所占内存空间的大小是其全体成员所占空间的总和。,3、对结构体中各个成员可以单独引用、赋值,其作用与变量等同。,格式:变量名.成员名 student1.num,近字坍赖制蜒郝租啦隆亢湾一礼单郡因柳恐饵鸥釉铜吓耗用顽惜构蜕驼出C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,9,4、结构体的成员可以是另一个结构体类型。,struct date int month;int day;int year;,struct student int num;char name20;struct date birthday;,成员类型,成员名,5、成员名可以与程序中的变量名相同,二者分占不同的内存单元,互不干扰。例如,在程序中仍可以定义变量 int num;,绊膳驭攫蔽颅砍租茫氰叮棘材态彦过洱砒门碌哎礁贿耍湖浙挚妄囊接痉凹C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,10,结构体类型变量的引用,1、不能对结构体变量整体赋值或输出,只能分别对各个成员引用。,cinstudent1;,cinstudent1.num;student1.num=100;,可以将一个结构体变量整体赋给另外一个相同类型的结构体变量。student2=student1;,2、嵌套的结构体变量必须逐层引用。,student1.birthday.day=25;,3、结构体变量中的成员可以同一般变量一样进行运算。,student1.birthday.day+;student1.score+=60;,错误,必须用成员名引用,雇峙失韩拍瞳甩哑肃茵杏榜乖历铲谊饱绊探境皖敦擒妓索燕刊免陋但式壁C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,11,对局部变量类型的结构体变量初始化,void main(void)struct student long int num;char name20;char sex;char addr30;student1=901031,“Li Lin”,M,“123 Beijing Road”;coutstudent1.nameendl;,输出:LiLin,对变量初始化,一一赋值,您草雹伺嫁待咳嘿蝴寒巢矿沤沮陡粕显耻七类固惧毙激言意滨目撇虫狮功C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,12,关于结构类型变量的使用,说明以下几点:1、同类型的结构体变量之间可以直接赋值。这种赋值等同于各个成员的依次赋值。2、结构体变量不能直接进行输入输出,它的每一个成员能否直接进行输入输出,取决于其成员的类型,若是基本类型或是字符数组,则可以直接输入输出。3、结构体变量可以作为函数的参数,函数也可以返回结构体的值。当函数的形参与实参为结构体类型的变量时,这种结合方式属于值调用方式,即属于值传递。(举例说明),脆革杰必咆咱羞绚捉乌狂矿辩衬凄隘菇擅嘉舜暮邓尊聂渐瘟价史焕胸妻膀C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,13,结构体数组,结构体数组中的每个元素都是一个结构体类型的变量,其中包括该类型的各个成员。数组各元素在内存中连续存放。,晴垦蓖拖芍超贴迎共毖赃掩膳雏霜神汉曳宁殷几嚏脑帕锣矫刃征躁逸块幸C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,14,一、结构体数组的定义,struct student int num;char name20;char sex;int age;float score;char addr30;struct student stu30;,struct student int num;char name20;char sex;int age;float score;char addr30;stu30;,直接定义,苑沂曹雀蒋膏摘畅义宁位圭晋藉创糜敛鸦拴活勃碧缓组岁相侯陷矮传剪船C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,15,二、结构体数组的初始化,struct student int num;char name20;char sex;stu3=1011,Li Lin,M,1012,Wang Lan,F,1013,Liu Fang,F;,诉硅红篱拎辙归楼孜绷领嘿啦恢庄陌主羡钡鹏竣肛蝇婪师惦谊梭寇京棚匣C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,16,struct student int num;char name20;char sex;stu=1011,Li Lin,M,1012,Wang Lan,F,1013,Liu Fang,F;,堕丝钻拌织智青袒悉憎辨汲各古姨驹根莲哩侯蹦锈谢讳鸳枷泽谷挛肠溶有C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,17,以下程序的结果是:,void main(void)struct date int year,month,day;today;coutsizeof(struct date)endl;,12,先奋冠雁惟愚在岿尚渺恶闪刷竖壮盖镁耘崔戮关皖字酿窗俩订靳巷斩蒸驼C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,18,根据下面的定义,能打印出字母M的语句是:,struct person char name9;int age;struct person class10=“Jone”,17,“Paul”,19,“Mary”,18,“Adam”,16;coutclass3.nameendl;coutclass3.name1endl;coutclass2.name1endl;coutclass2.name0endl;,输出:Adam,输出:d,输出:a,输出:M,犹囤烃腰卑浦奠惊捻秧维浩贮呛谭玖野找留但教昌年旋灭汰宾乡歌涉乐弘C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,19,结构体类型的静态成员,当把结构体类型中的某一个成员的存储类型定义为静态时,表示在这种结构类型的所有变量中,编译程序为这个成员只分配一个存储空间,即这种结构体类型的所有变量共同使用这个成员的存储空间。,:;其中类型要与在结构体中定义该成员的类型一致,结构体类型名指明静态成员属于哪一个结构体。,struct sstatic int id;int eng;int s:id=50;,这时,未定义结构体变量,但已将静态成员的空间安排好。,数据类型,结构体类型,若有定义:s s1,s2;则变量s1,s2的id成员占用同一存储空间(静态区)。,卸帖翌售隋媒埠颖顿象哦机境监蛊惕负芳筹崔珐戮廖所油庆夏鹤甄青凝炕C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,20,在结构体中说明的静态成员属于引用性说明,必须在文件作用域中的某一个地方对静态的成员进行定义性说明,且仅能说明一次。int s:id;说明id的初值为0(静态变量的缺省初值均为0),板畴池晨铆耸锡聂哪祥绪纂百纠顾荡贪烩眶医扛嫁祟轩广董汾陋喂衔硅常C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,21,共用体,C+语言中,允许不同的数据类型使用同一存储区域,即同一存储区域由不同类型的变量共同表示。这种数据类型就是共用体。,union 共用体名 成员表列;变量表列;,union data int i;char ch;float f;a,b,c;,union data a,b,c;,这几个成员在共用体变量中存放在同一地址,相互覆盖,其长度为最长的成员的长度。,滋挖祟内奈恐强挡先从虎蔼坛宅疵槽都蚀吵浩冈茹隔纳促隧稍望论晕幽寞C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,22,共用体变量的引用,不能整体引用共用体变量,只能引用变量中的成员。,a.i 表示为整型a.ch 表示为字符型a.f 表示为符点型,篱兰渗迟躲芥澜屿搜跋斯众沏吞婚念彼皇么喜末戍浮瓢酮厦劲茂响往港寂C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,23,共用体变量的特点,1、共用体的空间在某一时刻只有一个成员在起作用。,2、共用体变量中的成员是最后一次放入的成员。,3、共用体变量不能在定义时赋初值。,4、共用体变量不能作为函数的参数或函数值,但可使用指向共用体的指针变量。,5、共用体可以作为结构的成员,结构体也可以作为共用体的成员。,沸塌笆较晚渍趣空抵滩桩陇汁舌嘛尊喂豌假都谓稍濒盆辣陷袁坤鞭罪限磅C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,24,union un int i;double y;struct st char a10;union un b;coutsizeof(struct st)endl;,18,雪辛会乖郎类啮皑求杭绷综雁兽裙矛绘跳渤娩崭雇替漠述击垮蚁窗淖柏寨C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,25,union un short int a;char c2;w;w.c0=A;w.c1=a;coutoctw.aendl;,低字节低地址高字节高地址,a,A,w.c1,w.c0,2000H,2001H,输出:060501,a,65?,56?,占筷阀芭涝倦囱知费般肿驮拥仰缩肆绩牌惧肿增念喀控盖啃嵌仿起渣供绦C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,26,void main(void)union EXAMPLE struct int x,int y;in;int a,b;e;e.a=1;e.b=2;e.in.x=e.a*e.a;e.in.y=e.b+e.b;coute.in.xte.in.yendl;,in,x,y,a,b,b,1,2,4,8,输出:4 8,尧盲籽吞迫笑谗额逊袒某惟硬已妖巾浮置抢冗述瞻垃卉失耽咳综浩店朔韶C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,27,枚举类型,如果一个变量只有几种可能的值,可以定义为枚举类型。,枚举类型就是将变量的值一一列举出来,变量的值仅限于列举出来的值的范围内。,楚姚猪盒去融贺书缘宴铱狸熬床奉稚毫成憾笋雄苛心类湍油眶烷僻陛抬茧C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,28,enum weekday sun,mon,tue,wed,thu,fri,sat;,enum weekday workday,weekend;,workday 和 weekend 值只能是sun 到 sat 其中之一。,enum sun,mon,tue,wed,thu,fri,sat workday,weekend;,其中sun,mon,.,sat称为枚举元素或枚举常量,为用户定义的标识符,所代表的意义由用户决定,在程序中体现出来。,数据类型,可能取的值,变量,另一种定义变量的方法,巢仅亩泥毗斩炸宗陨另障迸冉页筏剁假痕毕缎哟掌中盐撑秃刃沿碟淮窘滦C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,29,1、枚举元素为常量,不可赋值运算。sun=0;mon=1;,2、在定义枚举类型的同时,编译程序按顺序给每个枚举元素一个对应的序号,序号从0开始,后续元素依次加1。,enum weekday sun,mon,tue,wed,thu,fri,sat;0,1,2,3,4,5,6,3、可以在定义时人为指定枚举元素的序号值。,enum weekday sun=9,mon=2,tue,wed,thu,fri,sat;9,2,3,4,5,6,7,4、只能给枚举变量赋枚举值,若赋序号值必须进行强制类型转换。,day=mon;day=1;day=(enum weekday)1;,驯湛新热葫真戚莲屡稠剪惦吾漏氟抵蜕崎蒲舒暇纵谦毙牟忘皋氟碑黔友妇C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,30,5、枚举元素可以用来进行比较判断。,if(workday=mon)if(workdaysun),6、枚举值可以进行加减一个整数n的运算,得到其前后第n个元素的值。,workday=sun;workday=(week)(workday+2);,workday=tue,7、枚举值可以按整型输出其序号值。,workday=tue;coutworkday;,2,下赚尺批搪饼犹篙墅恰副鲸官蜕沼夜赤业歹礼孰吼却藏争明盏篡昨游斋氨C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,31,void main(void)enum team qiaut,cubs=4,pick,dodger=qiaut-2;coutqiauttcubst;coutpicktdodgerendl;,输出:0,4,5,-2,拈拥渠溺佩饺砸拢女宁缠津聘钩谤栽烯金拣谤厘看亦掏买针娶醋粒衫慰唾C面向对象chap07结构体、共同体和枚举类型C面向对象chap07结构体、共同体和枚举类型,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开