网站大量收购独家精品文档,联系QQ:2885784924

第十一章 用typedef定义数据类型、结构体.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章 用typedef定义数据类型、结构体

1. 共用体类型定义 共用体类型定义的一般形式: union 共用体名 { 成员表列 }; 2000 2001 2002 2003 ch i f 例: union data { char ch; int i; float f; }; 2.定义共用体类型的变量(与结构变量的定义类似) (1)先定义类型,再定义变量,例如: union data /*共用体类型定义*/ { int i; char ch; float f; }; union data a,b,c;/*共用体类型变量定义*/ (2)定义类型时同时说明变量,例如: union data { int i; char ch; float f; }a,b,c; (3)不定义类型名而直接定义变量,例如: union { int i; char ch; float f; }a,b,c; 共用变量占用的内存空间,等于最长成员的长度,而不是各成员长度之和。 二. 共用体变量的引用方式(逐个引用) 对共用体变量的引用,是通过其成员的引用来实 现的。 a.i /*引用共用体变量中的成员i,a.i就相当于一个整型变量*/ a.ch /*引用共用体变量中的成员ch,a.ch就相当于一个字符变量*/ a.f /*引用共用体变量中的成员f,a.f就相当于一个实型变量*/ 不能对共用体变量进行整体的输入输出,如: printf(”%d”,a); 例14-4共用体变量引用。 #include stdio.h void main() {union{ char a; int b; long c; }uu; uu.a=’0x61’; printf(”\n1:a=%x,b=%x,c=%lx”,uu.a,uu.b,uu.c); uu.b=0x7656; printf(”\n2:a=%x,b=%x,c=%lx”,uu.a,uu.b,uu.c); uu.c=0 printf(”\n3:a=%x,b=%x,c=%lx”,uu.a,uu.b,uu.c); } 61 00 00 00 a b b 56 76 00 00 78 56 34 12 三、特点 1)系统采用覆盖技术,实现共用变量各成员的内存共享,所以在某一时刻,存放的和起作用的是最后一次存入的成员值。 例如,执行un1.i=1, un1.ch=c, un1.f=3.14后,un1.f才是有效的成员。 2)由于所有成员共享同一内存空间,故共用变量与其各成员的地址相同。 例如,&un1=&un1.i=&un1.ch=&un1.f。 3)不能对共用变量进行初始化(注意:结构变量可以);也不能将共用变量作为函数参数,以及使函数返回一个共用数据,但可以使用指向共用变量的指针。 4)共用类型可以出现在结构类型定义中,反之亦然。 第十一章 用typedef定义数据类型、结构体和共用体 11.1 C语言的数据类型 11.2 用typedef定义数据类型 typedef定义数据类型,它的定义格式如下: typedef 已有类型 标识符; 如: typedef double DL; typedef并不能定义新的数据类型,它只是对已有的某种数据类型定义一个别名而已。 DL m,n; C语言允许用typede定义新的类型名来代替已有的类型名。 等价于 double m,n 定义一个新的类型名的基本方法是: (1)先按定义变量的方法写出定义体(如:int i;)。 (2)在最前面加typedef(如:typedef int i)。 (3)将变量名换成新类型名 (如:将i换成COUNT,即typedef int COUNT)。 (4)然后可以用新类型名说明变量. 在程序中,用户可以同时使用原有的类型名和新创建的类型名来定义变量。 用typedef定义了一个新的类型名,但它并没有创建类型。 它只是对已存在的类型创建了一个新的称呼,即新的类型名。 创建这个新的类型名可能是为了使类型名的引用更简单、方便(如对结构体、共用体等创建新的类型),也可能是为了使类型名的引用更符合某些人的习惯和喜好 11.3 结构体类型 一、结构体的定义 格式:struct 结构体名 {类型名 成员名表}; 功能:定义一个结构体类型。 说明: (1)struct是关键字,是结构体类型必不可少的标识符。 (2)结构体名是用户自己定义的标识符,与变量类型名相同。 (3)花括号“{ }”中是组成该结构体类型的成员数据项,或称为结构体中的分量。 (4)结构体成员的数据类型可以是简单类型、数组、指针或已定义过的结构等。 (5)整个定义以

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档