- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言--第九章 结构体与共用体
第9章 3. 先说明结构体类型,再定义结构体数据 struct student { char name[12]; char sex; struct date birthday; float sc[4]; } ; struct student std,pers[3],*pstd; 9.1.3 结构体类型数据的初始化 1. 结构体变量初始化 所赋初值顺序放在一对花括号中,例如: struct student std={“LiMing”,’M ‘,1962,5,10,88,76}; 注意: a按成员在结构体中的顺序一一对应赋值。 b不允许跳跃式赋初值。 c未赋初值的数值型和字符型数据,系统自动赋初值0。 9.1.4 结构体类型数据的引用 1. 结构体成员的引用 若已定义了一个结构体变量和该类型的指针变量,并且该指针 已指向同类型的变量,则可以用以下三种形式来引用结构体变 量中的成员。结构体变量名也可以是已定义的结构体数组的数组 元素。 (1) 结构体变量名.成员名 (2) 指针变量名-成员名 (3)(*指针变量名).成员名 其中点号(.)称为成员运算符;箭头(-)称为结构指向运算符 ,减号(-)和大于号()之间不得有空格;第三种形式中, 一对圆括号不可少。这些运算符与圆括号、下标运算符的优先 级相同,优先级最高。 struct student { char name[12]; char sex; float sc[4]; }std,pers[5],*pstd ; pstd=std; 引用成员形式如下: std.name pstd-name (*pstd).name 9.1.5 函数之间结构体数据的传递 9.1.6 动态存储分配与链表 9.2 共用体 共用体的类型说明和变量的定义方式和结构体的类型说明和变量定义的方式完全相同。 不同的是: 结构体变量中的成员各自占有自己的存储空间,而共用体变量中的所有成员占有同一个存储空间。 9.2.1 共用体类型说明 共用体类型说明的一般形式为: union 共用体名 { 类型名1 共用体成员名1; 类型名2 共用体成员名2; …… 类型名n 共用体成员名n; }; 例如: union exam { int a; float b; char c; }; 9.2.2 共用体变量的定义 同结构体(三种方法) 9.2.3 共用体变量的引用 1.可以引用其成员 union exam { int a; float b; char c; }x,y,a[5],*px; x.a=25; x.b=38.5; x.c=’A’; y.a=x.a; y.b=x.b; y.c=x.a; px=x; px=a; 2.可以将一个共用体变量的值整体赋值于另一个共用体变量 例:y=x; a[0]=x; 9.2.4 注意事项 1. 共用体类型数据的多个成员共用一个内存段,但每一瞬时只有一个成员起作用。 2. 共用体变量中起作用的是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。 3. 共用体变量的地址和它的成员的地址都是同一地址。 printf(“%u,%u,%u\n”,x.a,x.b,x.c); 4. 共用体与结构体可相互嵌套定义。 9.3 用typedef说明新类型 5. 共用体与结构体所占存储空间的区别: 共用体变量所占字节数: 与其成员中所占字节数最大的那个成员相等。 结构体变量所占字节数:是其成员所占字节数的总和。 例 union data struct data { int i; { int i; char ch; 或 char ch; float f; float f; }a; }a; 上面定义的共用体变量a占4个字节(因为一个实型变量占4个字节),结构体占2+1+4=7个字节。
原创力文档


文档评论(0)