结构体相关知识
问题实例:
录入一份图书目录,包含图书的价格,作者姓名以及书名。(下文以解决该问题的过程来解释结构体相关知识,参考C primer plus_p439)
1.定义结构体变量
struct book { /*先定义结构体类型,再定义结构体变量*/ struct book {/*在定义结构体类型的同时定义结构体变量*/
char title [N]; char title [N];
char author [N]; char author [N];
float value; float value;
}; }library;
struct book library;
访问结构体成员是用.
运算符 ,例:library.value
。
2.定义结构体数组
struct book { /*先定义结构体类型,再定义结构体变量*/ struct book {/*在定义结构体类型的同时定义结构体变量*/
char title [N]; char title [N];
char author [N]; char author [N];
float value; float value;
}; }library[num];
struct book library[num];
访问结构体成员是用.
运算符 ,例:library[n].value
。
辨析:
library //一个book结构的数组
library[2] //一个数组元素,该元素为book类型
library[2].title // 一个char类型数组(library[2]的title成员)
library.[2].title[4] //数组中library[2]元素的title成员的一个字符
3.嵌套结构:可以使用结构体的嵌套来解决一些问题。(访问时使用两个.
运算符即可)
4.结构体指针
struct book * thebook //声明结构体指针
thebook = &library;//指向结构体变量的指针
thebook = &library[0];等价于 thebook = &library //指向结构体数组首地址的指针
thebook++; //访问下一个结构体数组成员
thebook->value //访问成员
5.向函数传递结构体
向函数传递结构体单个成员
复制单个成员的内容
向函数传递结构体的完整结构
复制结构体所有成员
向函数传递结构体的首地址
仅复制一个地址
其他特性:同类型的结构变量可以直接赋值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】