c语言第九章 结构体和共用体.ppt,[英语]c语言第九章结构体与共用体.ppt

本文详细介绍了C语言中的结构体和共用体。结构体允许将不同类型的数据组合在一起,可以按成员顺序初始化,并通过成员引用进行访问。函数间可以传递结构体数据。动态存储分配和链表的概念也在讨论之列。另一方面,共用体的特点是所有成员共享同一存储空间,每次只有一个成员有效。理解这两种数据类型对于C语言编程至关重要。
摘要由CSDN通过智能技术生成

[英语]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.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个字节。 * 9.1.1 结构体类型说明 声明一个结构体类型的一般形式为: struct 结构体名 {类型名1 成员名表1; 类型名2 成员名表2; }; 如: struct date { int year; int month; int day; }; 9.1.2 定义结构体类型变量的方法 1. 说明结构体类型的同时定义结构体数据 struct student { char name[12]; char sex; struct date birthday; float sc[4]; }std,pers[3],*pstd; 2. 直接定义结构体类型的数据 在说明一个无名结构体类型的同时,直接进行定义。结构体名可省略,写成: struct { char name[12]; char sex; struct date birt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值