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

    C语言程序设计8结构体.ppt

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

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

    C语言程序设计8结构体.ppt

    ,讲课提纲,C语言程序设计,Chap.8 结构体、共同体 和枚举类型,桂林电子科技大学,苇姨絮叉米入熏竖溺离阵万冒舍妄丑臆错卢楞元酉剁屋龋铝呜条例综好孜C语言程序设计8结构体C语言程序设计8结构体,Chap.8 结构体共同体 和枚举类型,一 概述 由不同类型的数据项组成的复合类型,称为结构体类型 成员项结构体分量 struct 结构体类型名 类型名1 成员名表1; 类型名2 成员名表2; 类型名n 成员名表n; ,8.1 结构体类型,二 结构体类型变量的定义 1 先后定义 先定义类型,后定义变量,Ex struct stu long num; char name20,sex; int age; float score; char addr30; ,2 同时定义,Ex struct stu long num; char name20,sex; int age; float score; char addr30; s1,s2;,3 直接定义 缺省结构体类型名,Ex struct long num; char name20,sex; int age; float score; char addr30; s1,s2;,struct stu s1,s2;,袄凰饭旷镭顺看凋蛹孔蓬呼墟蛰鞍晕蚀胯迪诱钓泳勾迹楼柏诣斜撑仕肩痈C语言程序设计8结构体C语言程序设计8结构体,结构体2,三 结构体类型变量的初始化 struct stu s1=20101,Li Ping,M,18,86,桂林;,四 结构体类型变量的引用 成员 结构体变量名.成员名,五 结构体数组 Ex struct stu s40; 结构体数组:数组元素是结构体变量 先后定义 同时定义 直接定义 初始化 struct stu s40= 20101,Li Ping,M,18,86,桂林, 20102,Wang Yifei,F,19,95,柳州 ; 对s0、s1赋初值,六 结构体指针 struct 结构类型名 *结构体指针名 指向运算符和圆点运算符 (*p).成员名 p-成员名 p是指针,不是结构体变量,不能写成:p.成员名,顺疟衙推里萝争守流尔稻若砍随咽鼓稗嗓虱藩价发急涵挺捌趋疵妻污塔披C语言程序设计8结构体C语言程序设计8结构体,例题,Ex802 struct person char name9; int age; ; struct person class10= Join,17, Paul,19, Mary,18, Adam,16 ;,class2.name0,Ex804 struct stud char num6; int s4; double ave; ,6,8,22,8,Ex803 struct ex int x; float y; char z; example; A) struct是结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型,Ex801 #include struct abc int a,b,c; ; main() struct abc s2=1,2,3,4,5,6; int t; t=s0.a+s1.b; printf(%dn,t); ,s0 s1,a b c a b c,权然价约抬梢蒂堑赵瓣溜溪殴垄局谰驳婪泣鞋典搜鹤裹苍谁族砰恍挺鄂债C语言程序设计8结构体C语言程序设计8结构体,Ex805 #include struct st int x; int *y; *p; int dt4=10,20,30,40; struct st aa4= 50, ,Ex806 以下程序用来输出结构 体变量ex所占存储单元 的字节数 #include struct st char name20; double score; main() struct st ex; printf(ex size:%dn, ); ,sizeof(ex),+(p-x)=51,例题,(+ p)-x=60,+(*p-y)=21,衫瞒防庶汪摄痘腰拔枕蛹冀兽枝硅址嫌淫纯湘逾阔达取髓边脂孤爱褂抠忘C语言程序设计8结构体C语言程序设计8结构体,8.2 自定义类型,Ex2 typedef struct int n; char ch8; PER; A) PER是结构体变量名 B) PER是结构体类型名 C) struct是结构体类型名 D) typedef struct是结构体类型,Ex3 对结构体变量定义不正确的是 A) typedef struct aa B) #define AA struct aa int n; AA int n; float m; float m; AA; tdl; AA tdl; C) struct D) struct int n; int n; float m; float m; aa; tdl; struct aa tdl;,typedef 类型名1 类型名2; 类型名1是已有定义的类型标识符,类型名2是一个用户定义的新 类型标识符,Ex1 typedef int INTEGER; 有了上面的定义以后, INTEGER m,m; 等价于 int m,m;,啥埋律碌锹梯寓查腔希榔奎瘫柬想狙糊邦菊昂臂格业悸胆彬瘫粮盐都摧狸C语言程序设计8结构体C语言程序设计8结构体,Ex807 #include typedef struct int a; char b; ST; ST *fun(ST x) ST *px; x.a=100; x.b=C; px= ,Ex808 #include #define N 5 typedef struct char name20; char num10; USER; getdata(USER *sp) int i; printf(Enter name /* 输入时,姓名与电话号码各占一行 */,例题,逆缘梆门解宇椎体魁炽佩椿源课电劣磁着言设僻拽挑员焊杭患族绍柬漫嘿C语言程序设计8结构体C语言程序设计8结构体,例题,outdata(USER *sp) int i; printf(After sorted:n); for(i=0;i0) k=j; temp=spk; spk=spi; spi=temp; main() USER spN,temp; getdata(sp); getsort(sp); outdata(sp); /* 输入 排序 输出 */,毫特咕羽揪短停疲坏隔茂喉赖纬鬼颊衅忻犊整厩拯笛壁不亩温椽出罚陪怯C语言程序设计8结构体C语言程序设计8结构体,8.3 链表,指针域 指向下一结点,数据域,Ex809 #include struct node int data; struct node *next; ; typedef struct node NODETYPE; main() ,0,NODETYPE a,b,c,*h,*p;,a.data=10; b.data=20; c.data=30;,h=,a.next=,c.next=0;,while(p) printf(%4d,p-data); p=p-next; printf(n);,p=h;,输出: 10 20 30,struct link char ch; struct link *p; a;,郧折吏厌檀猿哟凤柄课碳晦谎渣掣窘稚蜂札顷月昼弗马制蒙父很春锦烛人C语言程序设计8结构体C语言程序设计8结构体,建立链表,Ex810 建立带有头结点的单向链表 读取数据 生成新结点 存入数据 将新结点插入到链表,SLIST *creat_slist() int c; SLIST *h,*s,*p; scanf(%d, /* 返回头指针 */ ,10,20,亿顾巴咋举锹加炼鲍班西冲墩擒赦肖脱迂孝衔律糙术钾勋荫银所判惶咏肋C语言程序设计8结构体C语言程序设计8结构体,输出链表,print_slist(SLIST *h) SLIST *p; p=h-next; if(p= =0) printf(Linklist is null!n); else printf(Head); do printf(-%d,p-data); p=p-next; while(p!=0); printf(-Endn); ,矩氰缮赏晴辩载遇踢面键佬壳徽杯僧鲸掩步竖谤欠始祈刻呢滨概定痉旦滤C语言程序设计8结构体C语言程序设计8结构体,插入结点,insert_snode(SLIST *h) int x,y; /* 在值为x的结点前,插入值为y的结点 */ SLIST *s,*p,*q; printf(insert:x,y=); scanf(%d%d , ,设x为20,y为15:插在中间,p= =0 :空表,不进入循环,0,歹匡突亚坝堂勘血彝吨圈惩宜窿丈续矛甸凿搏色切佛座构酷蒸靴絮谆扬伦C语言程序设计8结构体C语言程序设计8结构体,插入结点,insert_snode(SLIST *h) int x,y; /* 在值为x的结点前,插入值为y的结点 */ SLIST *s,*p,*q; printf(insert:x,y=); scanf(%d%d , ,设x为40,y为15: p=0 ,插在最后,完雍抱翻昆招仑虎率吾爆摆哗症丸红散纹咒毡哺后绽堑塞哑碴炮魏做巢枯C语言程序设计8结构体C语言程序设计8结构体,例题,B),C),D),嫌褥署溃家咐淹埠埂杏漾讽漾部屠劝扒循恍拯孙趴搪肠痢阁敏蓄倦走烯积C语言程序设计8结构体C语言程序设计8结构体,8.4 共同体,共同体的类型说明和变量的定义方式和结构体完全相同,不同的是:结构体变量中的成员各自占有自己的存储空间,而共同体变量中的所有成员占有同一的存储空间 在共同体类型的说明中,与结构体类型不同的是用关键字union代替 struct,E811 main() union char i2; int k; r; r.i0=2; r.i1=0; printf(%dn,r.k); ,r.i1=5;, 共同体类型数据的特点 1 同一内存段可以用来存放几种不同类型的成员,但在每一瞬时只 能存放其中一种,只有一个成员起作用。 2 共同体变量中起作用的成员是最后一次存放的成员,在存入一个 新成员后,原有的成员就失去作用。 3 共同体变量的地址和它的各成员的地址都是同一地址。 4 不能对共同体变量名赋值,也不能企图引用变量名来得到一个值, 又不能在定义共同体变量时对它初始化。 5 不能把共同体变量作为函数参数,也不能使函数带回共同体变量, 但可以使用共同体变量的指针。 6 共同体类型可以出现在结构体类型定义中,也可以定义共同体数 组。反之结构体也可以出现在共同体类型定义中,数组也可以作 为共同体的成员。,榨绞慎租诧选礼惩隐愉翠诗恰衔欧焚耪苦稗姥巴羞差老讼央钢业镜臆敌革C语言程序设计8结构体C语言程序设计8结构体,sizeof(struct test)=12,例题,字世复饮还浓富唆钒迭花纤讳还吊垒信钟意礼涝昭校屿菇夷栖棍谐蚕召雅C语言程序设计8结构体C语言程序设计8结构体,8.5 枚举类型,一 枚举类型变量的定义 定义类型 enum 枚举类型名 枚举常量表 ; 定义变量 enum 枚举类型名 枚举变量表; Ex enum weekday sun,mon,tue,wed,thu,fri,sat; enum weekday w1,w2; 二 枚举类型的应用 1 枚举类型变量的取值只能是枚举常量表中的某一常量 2 n个枚举常量组成的枚举类型,枚举常量对应的序号是 0,1,2,.,n-1 3 枚举类型可作为 while 或 for 语句中循环控制变量的类型 4 枚举变量可进行关系、自增减(+,- -)运算 5 枚举值可以用来作判断比较 6 一个整数不能直接赋给一个枚举变量,妆诀锥坤貉祖芬次寅输窝烯崎最厘镀干余雅决恕却忿簿窟辣走蓖炕径河梢C语言程序设计8结构体C语言程序设计8结构体,

    注意事项

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

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




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

    三一文库
    收起
    展开