TP12 结构体.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TP12 结构体.ppt

第十二章 结构体与共用体 回顾 字符串与字符数组的区别是字符串的末尾有一个空字符\0以标识字符串结束。 用scanf()语句读入字符串时不允许输入中存在空格。 gets() 和 puts() 函数分别用于字符串的输入和输出。 在 string.h 中定义了很多字符串处理函数函数,比较常用的有:strcpy()、strcat()、strcmp() 和 strlen() 。 假如程序里需要一组字符串,一种常用的做法就是用一个字符指针数组表示它们。 字符串可以作为参数,函数传递机制同数组作为参数,为传址方式。 本章目标 理解为什么使用结构 定义结构 声明结构变量 访问结构成员 掌握结构作为函数参数的用法 结构体数组 结构体类型的指针 了解共用体和枚举类型 结构简介 定义结构2-1 定义结构2-2 声明结构变量 嵌套结构 结构变量初始化 结构变量赋值 使用结构示例 使用结构示例2 结构指针变量 结构数组 结构数组示例 输入某班30位学生的姓名及数学、英语成绩,计算并输出每位学生的平均分,并且输出每门课程的平均分。 结构数组示例 输入某班30位学生的姓名及数学、英语成绩,计算并输出每位学生的平均分,并且输出每门课程的平均分。 结构指针变量 结构作为函数参数 结构成员作为函数参数 整个结构作为参数 Main() { int a=3,b=5,c; c=dis(a,b); printf(“%d,%d\n”,a,b); printf(“%d”,c); } Int dis(int x,int y) { x=x+y; y=x-y; return x; } 结构指针作为参数 结构指针做为参数 共用体简介 所谓共用体数据类型是指将不同的数据项组织为一个整体,它们在内存中占用首地址相同的一段存储单元。共用体也称为联合 共用体定义 union 共用体标识名 { 类型名1 共用体成员名表1; 类型名2 共用体成员名表2; … 类型名n 共用体成员名表n; }; 共用体变量的引用 和结构体变量引用类似 枚举类型 所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内 枚举变量 枚举变量的定义与共用体变量类似 实验十二 结构体与共用体 实验目的与要求 1. 掌握结构体类型变量的定义和使用。 2.掌握结构类型数组的概念和使用; 3. 掌握共用体的概念和使用 实现堆栈 5-1 实现堆栈 5-2 使用堆栈实现行编辑功能 实现堆栈 5-3 由此可见,需要实现堆栈的以下几个操作: 入栈 出栈 清空栈 显示从栈底到栈顶所有的元素 判断栈是否为空 实现堆栈 5-4 实现堆栈 5-5 总结2-1 结构是由若干数据项组合而成的复杂数据对象,这些数据项称为结构的成员。 定义一个结构,需要给出各个成员的类型及名称。 结构定义仅描述了一个结构的形式。要在程序里使用结构,需要声明结构变量。 访问结构成员的操作要用圆点运算符(.),一般形式为:结构变量名.成员名。 总结2-2 可以通过指向结构的指针访问结构成员,常用形式为:结构指针变量-成员名。 数组元素的类型为结构的数组称为结构数组。 结构作为函数参数有三种不同的方式:结构成员的值传递给函数参数、整个结构作为参数传递、结构指针变量做函数的参数。 堆栈是一种先进后出的数据结构。 用堆栈实现简单的行编辑功能,问题描述如下: 接受用户从键盘输入的程序或数据,并存入用户的数据区。由于用户在键盘上进行输入时,不能保证不会出错,因此,需要设立一个输入缓冲区,允许用户输入出差错,并在发现有误时可以及时更正。例如,当用户发现刚刚键入的一个字符错了时,可以补进一个“#”,以表示前一个字符无效;如果发现当前键入的行内差错较多或难以补救,则可以键入一个退行符“@”,以表示当前行中的字符均无效。 W h i e whiel##lr#e(s#*s) l l r e ( s * s 输出缓冲区(堆栈)中的所有字符,即有效字符:while(*s) o u t c outcha@putchar(*s=#++); h a 遇到字符@清空缓冲区(堆栈) p u t c h a r ( * s = + + ) ; 遇到字符#时,栈顶元素出栈 输出缓冲区(堆栈)中的所有字符,即有效字符:putchar(*s++); #define m 100 struct Mystack { char element[m]; int top;//栈顶 }; 栈结构 void push(struct Mystack *s,char x) /*将x的值压入栈顶*/ { s-

文档评论(0)

tangtianxu1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档