新闻详情

新闻详情

首页 / 资讯中心 / 详情

结构体详细集合

发布时间:2026/11/14 10:09:55来源:尧图网络
结构体详细集合
目录一.结构体的定义二.结构体的定义与声明1.常规方法2.匿名结构体3.嵌套结构体三.结构体的赋值1.定义时赋值初始化2.定义后逐个赋值四.结构体成员访问1.点操作符访问2.通过成员访问操作符访问五.结构体内存对齐1.为什么要内存对齐2.内存对齐规则一.结构体的定义1.结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。2.结构体和其他类型基础数据类型一样即与数组整型int字符型插入等类型同级别。3结构体关键字struct 。二.结构体的定义与声明1.常规方法示例struct student { char name[20]; int age; char sex[20]; }; struct student a;这里我们定义了一个类型名为student 含有一个名为 name 字符型数组变量、 age 的整型变量 sex 的字符型数组变量 的结构体并成功声明student类型变量 a 。2.匿名结构体示例struct { char name[20]; int age; char sex[20]; }student;顾名思义我们定义的是一个没有类型名的结构体变量类型并同时声明了一个该类型的变量 student。注由此方式创建的结构体只能在定义时声明变量在定义之后无法再次声明变量。3.嵌套结构体嵌套可理解为镶嵌、套用。指在已有的表格、图像或图层中再加进去一个或多个表格、图像或图层亦或两个物体有装配关系时将一个物体嵌入另一物体的方法。嵌套结构体即将一个结构体嵌套进另一个结构体中。示例struct data { int year; int month; int day; }; struct student { char name[20]; int age; struct data da; }这里定义的结构体 student 中有另一个结构体 data 这就是结构体的嵌套。注结构体包含自身时便是结构体的自引用结构体需要自引用时选择指针的形式否则将无法为其分配内存空间。三.结构体的赋值1.定义时赋值初始化示例struct student { char name[20]; int age; char number[12]; }; int main() { struct student stu { 张三,18,11111111111 }; return 0; }打开监视器我们可以发现数据已经在变量声明的时候储存进去了。2.定义后逐个赋值示例struct student { char name[20]; int age; char number[12]; }; int main() { struct student stu; stu.age 18; sprintf_s(stu.name,张三); sprintf_s(stu.number, 11111111111); return 0; }由于时数据声明后挨个赋值所以无所谓赋值顺序了。四.结构体成员访问1.点操作符访问示例#includestdio.h struct student { char name[20]; int age; char number[12]; }; int main() { struct student stu { 张三, 18, 11111111111}; printf(名字%s,\n年龄%d,\n电话号码:%s, stu.name, stu.age,stu.number); return 0; }运行结果如下2.通过成员访问操作符访问注成员访问操作符的作用对象时指针。示例struct student { char name[20]; int age; char number[12]; }; int main() { struct student stu { 张三, 18, 11111111111}; struct student* pstu stu; printf(名字%s,\n年龄%d,\n电话号码:%s, pstu-name, pstu-age,pstu-number); return 0; }运行结果如下所示五.结构体内存对齐1.为什么要内存对齐a.硬件平台不一定能随意访问某个地址上的任意数据b.为了访问未对齐的内存处理器需要作两次内存访问而对齐的内存访问仅需要一次访问。为了提高效率需要进行内存对齐。2.内存对齐规则a.先进行结构体各成员对齐再进行结构体总对齐。b.结构体的第一个数据成员存放的地址为结构体变量偏移量为0的地址处即结构体起始位置。从第二个成员开始各成员自要对齐到该成员大小与默认对齐数中最小值的整数倍的偏移量处。结构体的大小为其最大成员大小的整数倍处。示例struct student { int a; short b; char c; };对于这个结构体首先进行结构体成员对齐第一个成员为整型数据大小为四字节所占内存为1234以结构体起始位置为1第二个成员为短整型数据大小为二字节对齐到偏移量为 4 的位置即第二个成员所占内存为 56。第三个成员为字符型数据大小为一字节对齐到偏移量为7。然后进行结构体总对齐易知该结构体中最大的数据为整型数据大小为4对齐后偏移量为8。由此可知该结构体的大小为8字节。具体大小我们可以通过运行代码验证#includestdio.h struct student { int a; short b; char c; }; int main() { printf(%zd, sizeof(student)); return 0; }运行结果如下
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/14 3:51:47

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/13 10:09:00

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/13 13:31:48

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/13 16:11:45

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/14 3:51:43

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉