结构体笔记——控制组-杨越

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、结构体基础

结构体是我们自己定义的一种数据结构类型,它可以一次性打包一堆数据在函数间传递,并作为函数的参数使用,十分便捷。

1.结构体的定义

我们如果要使用一种结构的话,可以定义一种结构类型,(建议在代码的开头定义)
定义一个结构大致有三种形式
第一种,
定义的结构有名字但没顺便声明之后想用的变量
在这里插入图片描述
第二种,
定义的结构有名字也顺便声明之后想用的变量,且其为全局变量,可以直接在函数里修改。而且在main函数里依旧可以在定义自己的本地变量。
在这里插入图片描述
第三种,
定义的结构没有有名字声明了之后想用的变量,==注意:==如果没有定义结构名字的话必须声明了之后想用的变量。
在这里插入图片描述

2.结构类型变量的声明

在声明一个结构类型变量时struct date和int,double,char的使用方式大致相同。
在这里插入图片描述

3.结构体的输入输出

结构内部的函数声明后用today.month的格式输入输出
在这里插入图片描述
但通常为了简化代码,也会构建两个函数进行输入输出
在这里插入图片描述

4.结构指针

结构类型指针和int,char指针用法差不多,为了让结构类型数据在函数中使用更便捷,我们同样也会使用指针运算和输入输出结构变量,并作为函数参数执行函数。
在这里插入图片描述

5.嵌套结构

结构中还可以嵌套其他结构,但被嵌套的结构变量需要在嵌套结构前定义。
在这里插入图片描述

6.结构数组

结构也可以以数组的方式声明。
在这里插入图片描述


二、typedef

typedef可以给原结构类型名取一个别名,进而可以用别名(aa)来取代原名,在该代码段最后一个单词和typedef之间是原函数名,原名依旧可以正常使用。
这样可以省略过长的数据类型名,同时也可以对不同变量进行进一步区分。
注意:可以给同一种数据类型取多个别名,但是不同别名定义的变量本质相同,并且不能用不同别名定义同一个变量。
在这里插入图片描述

三、联合

union和struct的使用方式非常相似,但是union里的变量会占据同一空间,且空间大小为联合中数据类型最大的变量所占空间大小
在这里插入图片描述
union的输入输出在同一空间中,所以同样的数据用不同的变量输出可能会出现不同结果,而对其多次输入会覆盖或影响原有数据。
但是union在对判断数据的不同储存类型和不同数据类型的转换输入输出等等有优势。
union的输入输出方式和struct差不多,都是用ar.a的形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值