结构体的说明

本文介绍了C语言中如何通过结构体解决数据组合问题,包括结构体的声明、成员变量的定义与不同类型(如数组、指针和结构体本身)的使用,以及结构体变量的定义、初始化、直接访问和间接访问方法。
摘要由CSDN通过智能技术生成

     假如我们要描述一个学生需要包括学生的姓名、班级、学号等等,这时单一的内置类型是不够的。C语言为了解决这个问题,增加了结构体这种自定义类型,让程序员创造适合的类型。

结构:一些值的集合,这些值称为成员变量。

结构的每个成员可以是不同类型的变量,如:数组、指针,甚至是其他结构体。

要掌握结构体的用法我们要知道结构是如何声明的,结构体变量是如何定义和初始化的。

例:描述一个学生包括名字,年龄,性别和学号。

首先我们要声明结构体

struct Stu//结构体类型的声明,struct是定义结构体的关键字,不能被遗弃
{
char name[20];//名字
int age;//年龄
char sex[5];//性别
char id[20];//学号
};//分号不可缺

 对结构体类型的理解:结构体类型相当于内置类型(int,char,float等等),是变量属于什么类型的声明。如:int a 和struct Stu b;对于a变量我们会说a是一个整型,类型为int。而对于b变量我们会说b是结构体变量,类型为struct Stu。

接着要对结构体变量进行定义和初始化

结构体变量的定义和初始化有两种:一种在声明结构体的时候定义结构体变量并且初始化,另一种是在声明结构体的之后定义结构体变量并且初始化

struct Stu
{
char name[20];
int age;
char sex[5];
char id[20];
}p1={"李四",13,"man","12345"};//定义结构体变量p1并且初始化;
struct Stu p2={"王五",15,"man","123456"};//定义结构体变量p2并且初始化;

结构体嵌套结构体的变量也是一样初始化,这里就不详细解释。

我们在结构体变量定义和初始化之后肯定要对结构体进行访问。对结构体的访问有两种:

1.结构体成员的直接访问。使用方式为:结构体变量.成员名

2.结构体成员的间接访问。使用方式为:结构体指针->成员名

就比如对于p1结构体变量的年龄初始化的时候并不是p1的真实年龄,这时我们要进行更改为其真正年龄16岁,这时我们就可以通过结构体访问进行更改:直接访问的方式更改:p1.age=16;

间接访问的方式更改:&p1->age=16;

对于结构体的初始化我们也可以通过直接访问的方式进行初始化,struct Stu p3={.name="李华",.age=14,.sex="man'',.id=''14555''};

关于ENGINE结构体说明,根据提供的引用内容,我们可以了解到以下信息: 引用提到了处理用户自定义结构体类型比较麻烦,并且在不同的方式中使用的数据类型不一致。其中,引擎方式使用的是mxArray类型,而DLL方式使用的是mwArray类型。所以,我们可以猜测ENGINE结构体可能是在处理复杂数据结构时用到的一种结构体类型。 引用中提到了一个名为Coordinate的结构体类型,但不清楚是否与ENGINE结构体相关。 引用提到了在虚幻引擎商城中有关于Blueprint Structure And JSON Conversion的代码插件,这可能与ENGINE结构体相关,但需要更多的信息来确认。 综上所述,根据提供的引用内容,我们无法准确地给出ENGINE结构体的详细说明。但可以推测ENGINE结构体可能是用于处理复杂数据结构的一种结构体类型,在不同的方式中使用的数据类型可能会有所不同。如果需要更详细的信息,建议查阅相关文档或资料。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [VC与Matlab混合编程及复杂数据:结构体传递](https://blog.csdn.net/weixin_33216825/article/details/112955784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [UE4 结构体和JSON互转 - DTBPJson插件说明](https://blog.csdn.net/wmy19890322/article/details/123383341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值