C语言编程:探索结构与联合
版权申诉
191 浏览量
更新于2024-07-03
收藏 2.16MB PPT 举报
员项可以是任何类型,包括基本类型、其他结构或联合类型、指针等。
⑶结构变量在内存中按照成员项顺序存储,每个成员项占用其自身类型所占的内存大小。
7.2 结构变量的初始化
结构变量可以在声明时进行初始化,也可以在声明后单独初始化。初始化时,可以对所有成员赋值,也可以只对部分成员赋值。例如:
```c
struct student {
long num;
char name[20];
int age;
char add[30];
float score;
};
// 初始化
struct student wang = {123456, "Wang", 20, "Beijing", 90.5};
```
7.3 结构指针
结构变量的指针是指向结构首地址的指针,可以通过指针访问结构成员。例如:
```c
struct student *ptr = &wang;
printf("Name: %s\n", ptr->name); // 使用箭头操作符访问成员
printf("Score: %.2f\n", ptr->score);
```
7.4 结构作为函数参数
结构可以作为函数的参数进行传递,但传递的是结构的副本,如果想在函数内部修改结构,通常需要传递结构指针。
7.5 结构数组
可以定义结构数组,数组中的每个元素都是一个结构变量。例如:
```c
struct student class[10]; // 定义包含10个学生的结构数组
```
7.6 内存对齐与结构体大小计算
编译器为了优化内存访问速度,会对结构体内的成员进行内存对齐。结构体的实际大小可能大于各成员大小之和,因此在计算结构体大小时需要注意内存对齐规则。
7.7 联合(Union)
联合与结构类似,但联合内的所有成员共享同一块内存空间,成员的地址相同。这意味着,任何时候只有一个成员的值是有效的。联合的大小等于其最大成员的大小。
例如:
```c
union variant {
long num;
char name[20];
float score;
};
```
7.8 匿名结构与联合
在定义结构或联合时,可以省略结构或联合名,这种类型称为匿名结构或匿名联合。它们通常用作其他结构或联合的成员。
7.9 枚举(Enumeration)
枚举是C语言中另一种构造类型,用于定义一组符号常量。枚举类型定义如下:
```c
enum Color {Red, Green, Blue};
```
枚举类型`Color`有三个枚举常量:`Red`, `Green`, `Blue`,它们的默认值分别为0、1、2。
总结,C语言中的结构与联合提供了组合不同数据类型的能力,使得数据结构设计更加灵活,能够更好地模拟现实世界中的复杂对象。结构与联合的使用涉及定义、初始化、内存管理、函数调用等多个方面,是C语言编程中的重要概念。
2021-09-19 上传
2022-06-18 上传
2022-06-18 上传
2022-06-18 上传
2022-06-18 上传
wxg520cxl
- 粉丝: 25
- 资源: 3万+
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常