C语言结构体与共用体PPT学习教案.pptx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【C语言结构体与共用体】是C编程语言中重要的数据类型,它们允许我们将不同类型的数据组织在一起,形成更复杂的复合数据类型。 1. **结构体类型定义**: - **定义方法1**:可以使用`struct`关键字声明一个新的结构体类型,并在声明时创建变量。例如: ```c struct student { char name[12]; char sex; struct date birthday; float sc[4]; } std, pers[3], *pstd; ``` 这里定义了一个名为`student`的结构体类型,包含了姓名、性别、生日和四门成绩等字段,并创建了对应的变量`std`, `pers[3]`数组以及指向结构体的指针`pstd`。 - **定义方法2**:直接定义结构体类型的数据,不指定结构体名称: ```c struct { char name[12]; char sex; struct date birthday; float sc[4]; } std, pers[3], *pstd; ``` 这种方式同时定义了结构体类型和变量,但结构体没有名字。 - **定义方法3**:先声明结构体类型,再定义变量: ```c struct student { char name[12]; char sex; struct date birthday; float sc[4]; }; struct student std, pers[3], *pstd; ``` 这里先声明了结构体类型`student`,然后创建了相应的变量。 2. **结构体数据的初始化**: - **结构体变量初始化**:可以为结构体变量赋予初始值,值应按成员顺序放在花括号内: ```c struct student std = {"LiMing", 'M', 1962, 5, 10, 88, 76}; ``` 注意,未指定的数值型和字符型成员会被默认初始化为0。 - **结构体数组初始化**:结构体数组的每个元素都是结构体,因此需要为每个元素的成员赋值: ```c struct bookcard bk[3] = {{"No1", 35.5}, {"No2", 25.0}, {"No3", 66.7}}; ``` - **结构体指针初始化**:结构体指针的初始化与普通指针类似: ```c struct stu std, pers[3], *psd1 = &std, *psd2 = pers, (*p)[3] = &pers; ``` 3. **结构体类型数据的引用**: - **结构体成员引用**:可以通过以下三种方式访问结构体成员: ```c std.name pstd->name (*pstd).name ``` 其中,点号`.`用于访问成员,箭头`->`用于访问指针所指的结构体成员。 4. **结构体变量的赋值**: - **成员赋值**:可以直接对结构体的成员进行赋值,如`std.sex = 'M';` - **整体赋值**:两个相同类型的结构体变量可以互相赋值,如`pers[0] = std; (*pstd) = pers[0];` 5. **函数间结构体数据的传递**: - 结构体不能作为整体传递给函数,只能传递其成员。例如: ```c void f1(char *s) { printf("%s\n", s); } void f2(int i, char ch1, char ch2) { // 使用结构体成员 } ``` 在这种情况下,通常需要将结构体的成员作为单独的参数传递。 6. **注意事项**: - 结构体变量不能直接整体输入和输出,需要逐个成员进行处理。 - 结构体成员的赋值或访问需遵循成员顺序,不允许跳跃式赋值。 - 结构体数组的初始化要注意区分各个元素,通常通过花括号分组来完成。 以上内容涵盖了C语言中关于结构体的基本概念、定义、初始化、引用、赋值以及在函数调用中的传递方式,这些都是理解和编写涉及结构体的C程序的基础。在实际编程中,结构体常用于表示复杂的数据结构,如链表、树等,是实现数据结构和算法的关键工具。
- 粉丝: 7
- 资源: 58万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C#/WinForm演示退火算法(源码)
- 如何在 IntelliJ IDEA 中去掉 Java 方法注释后的空行.md
- 小程序官方组件库,内含各种组件实例,以及调用方式,多种UI可修改
- 2011年URL缩短服务JSON数据集
- Kaggle-Pokemon with stats(宠物小精灵数据)
- Harbor 最新v2.12.0的ARM64版离线安装包
- 【VUE网站静态模板】Uniapp 框架开发响应式网站,企业项目官网-APP,web网站,小程序快速生成 多语言:支持中文简体,中文繁体,英语
- 使用哈夫曼编码来对字符串进行编码HuffmanEncodingExample
- Ti芯片C2000内核手册
- c语言实现的花式爱心源码