- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言中级教程扩展类型-11ppt课件
* C语言中级培训 十一、扩展类型 结构体 是一种类型应用而产生的扩展类型。其中包含了类型的嵌套概念。恰是这一点表现了C语言的“成长性”。 语法形式: 存储模式: 用途:用于整合五花八门的类型为一种新类型。 结构体 特点: 可以嵌套定义; 类型可以无名; 各成员彼此独立存在; 使用“.”或“-”运算符访问各成员; 结构体变量可整体赋值; 可以对结构体变量整体初始化; 可以对变量或各分量取地址; 不可以在定义结构体类型时让成员带有初值。 强调: 对于VC++(32)平台,结构体变量对于内存的占用以及原因。(与TC的区别) 看后页例: 结构体类型的怪现象 两个结构体声明中的成员类型、名称、个数完全一致, 只是顺序不同,它们会一样大小吗? struct A struct B { { char c; char c; int a; char c; float f; int a; char c; float f; }; }; 为什么? 16 12 结构体类型的怪现象 其实一点也不怪,C/C++是按pack算法的对齐基数来决定结构体大小的。 若有 struct A { long l; int i; short s; char c; }; 若按基数为1字节计,该结构体的大小为15;按2字节计,大小为16;按8字节计,大小为32。 而基数是按字长的整数倍来确定的(为了效率),并且各编译器各有自己的原则,甚至有的编译器还可以用选项指定倍数。 课堂思考: 如何运用结构体的特点,设计一个链表模拟”自由链表” ——链表的每个结点都控制着一个堆空间,且各空间的大小不相等? 共用体 也是一种类型的扩展。 语法形式: 存储模式:区别 特点: 也可以嵌套定义。 可以无名。 共用体的妙用: 比如,你构造一个共用体: union KeyCode { short int keynum; char Byte[2]; // 以数组的视角观察变量 } kc; 当你用kc接受键盘输入的字符时,计算机将把它转换成一个双字节的整数编码,其中Byte[1]存放的是高字节的值,是键盘的扩展码;Byte[0]存放的是低字节的值,即ASCII码;而keynum则是它的整体值。 用类似的方法可以解析多个字节的内存变量的高低字节的值,免去了人工用位运算解析的麻烦。 枚举 是一种基本类型。本质上是一种整型。 语法形式: 存储模式:区别 特点: 可用值全部罗列,除此以外非法; 不可以嵌套定义; 也可以无名。 枚举 在标准C中,枚举型的内存大小等于sizeof(int)。 但在C++中则并非是int的大小,它可能更大或更小,完全取决于枚举常量的取值,很小时,可能是char或short型;很大时,则可能是int或long型; 究竟是多大,完全由你所使用的编译器版本所决定。这说明一个枚举变量所占字节数是无法预先确定的、是与平台相关的。 一个枚举常量或变量可以赋值给整型变量(除非超常),但整型变量不可以直接赋值给枚举变量,须强制转换,即使强转后赋值成功,枚举变量的值也不见得可用。因为枚举常量的跳跃性使得整数值可能落入“空当”中。 关于外连接和内连接 首先弄清作用域、连接的概念。 作用域:是描述了程序中可以访问到一个标识符的区域。C99已将for、while、do-while、if所控制的语句范围都视为块,不管是否用{}罩起来。 连接:凡具有代码块和函数原形作用域的变量是空连接的。这意味着它们属该块私有的,别处不能使用。 一般地说,在文件范围内声明的标识符(不含函数内或
您可能关注的文档
- 2011红鹤沟通青岛高端项目推广策略ppt课件.ppt
- 2011高考现代文阅读___如何分析文章标题ppt课件.ppt
- 2011首次期货投资分析真题讲解ppt课件.ppt
- 2011年神经本科(5年制).ppt
- 2012届浙江湘教版学海导航新课标高中总复习(第1轮)地理:模块1必修1第3章第4课常见的热力环流及其成因2.ppt
- 2012大学英语四级考试做题技巧.ppt
- 2011王立福的软件工程课件(自学考试)ppt课件.ppt
- 2012届浙江湘教版学海导航新课标高中总复习(第1轮)地理:模块2必修2第4章第1课_人类面临的主要环境问题ppt课件.ppt
- 2011珠江珠纺城推广方案ppt课件.ppt
- 2012年中考复习建议.ppt
文档评论(0)