1. 首页 / 百科

c语言结构体定义和使用 C语言入门基础知识

今天给大家讲一下结构体。

大家可能很好奇,为什么这种文章教程泛滥了,我还要拿出来讲。

相信无际的铁粉都知道,我分享的干货和经验出发点是实际产品应用。

脱离产品你所学的知识就产生不了价值,产生不了价值和辣鸡有啥区别?

网络上很多文章和教程都只讲了定义,很少有讲到实际应用,这就让人很懵逼。

那今天讲的内容呢,主体也分为两个部分:

1.概念和定义方法

2.实际产品应用

让你真正学以致用!

这节课的知识点也非常重要。

如果这两个不搞懂,注定你成为不了高手。

我尽量用简单通俗的语言进行讲解,方便小学生都能看懂!

一、通过这节课程你能掌握以下知识:

  1. 掌握结构体的概念和用法
  2. 掌握结构体数组和结构体指针
  3. 掌握包含结构体的结构体
  4. 掌握结构体搭建链表方法
  5. 掌握结构体及链表在产品开发中的应用

二、结构体的概念

在C语言里面,我们知道数据类型有char、short、int、long等,并且还知道通过数组来构造数据的集合。

但是通过数组来构造数据呢只能构造同一个类型的数据,比如说unsigned char buff[10]。

这种都是属于unsigned char类型的数据。

但是在不同的情况下,我们往往需要一些不同的数据类型组合成一种新的数据结构,比如说像学生的信息,包含学生名称、学号、性别、年龄等信息。

那么这些参数里面可能有些是数组型、字符型、整型、甚至是结构体类型的数据。

虽然这些都是不同类型的数据,但是这些都是用来表达学生信息数据,所以我们把这些数据组织在一起封装起来是不是使用起来会更方便,移植性也会更好。

基于这种需求,结构体就诞生了,结构体啊其实就是所谓的面向对象的编程思想,学生是对象,我们把这个对象的属性封装起来,以后用到哪个属性就从这个对象里提取出来。

为了大家更好地理解,我们先看这个简单的数据结构:日期。

日期是由年、月、日组成,那么年、月、日就是日期这个对象的属性,所以可以把日期定义成结构体来使用。

三、结构体的用法

我们用struct关键字来声明一个结构体,这里呢,我们以实际产品开发作为出发点,这里来讲解声明结构体最常用的2种方法,其他概念和不常用方法在这里就不多讲了。

1.第一种

这里使用struct关键字定义了一个结构体变量Date, 这个日期包含了年、月、日几个成员,然后通过Today.Year来给结构体成员赋值。

2.第二种

我们通过typedef 声明结构体Date为新的类型名来代替原有的类型名struct。

然后在结构体定义时直接通过Date来定义就可以了。

这种应该是使用最多的方法,这种方式定义结构体时语法比较简单,通过自定义的类型名我们也可以很直观地看出来这个结构体的作用。

那么我们这里是先定义结构体然后再赋值初始化的,其实我们也可以定义的时候直接赋值,写法如下:

四、结构体数组和指针

1.结构体数组

当我们要定义10个字符型变量的时候,我们可以通过定义成数组的方式,比如说unsigned char arry[10]。

结构体同样也可以定义成数组方式,比如说要定义3个不同的日期时,就会用到结构体数组。

那么同样的我们也有几种定义方法,这里只讲最常用的2种。

第一种:

第二种:

至于有什么区别嘛…咳咳,其实我也没深究过。

区别对我们开发一点影响也没有,我们的关键是要把它正确用起来。

所以,不要什么都去钻牛角尖,技术涉及的东西这么多,你钻得完吗?

我们应该抓住重点,盯着目标稳步前进,千万不要走偏了。

2.结构体指针

我们要知道只要是存储在内存里的变量、数组,又或者是函数。

编译器都会为它们分配一个地址,我们都可以通过指针变量指向这个地址,只要把指针变量定义成对应的数据类型就可以指向了。

比如说要指向字符型变量就定义成这样:unsigend char *p,当然也可以用void不指定类型,使用的时候再进行强制转换。

要指向函数就定义函数指针变量,那么结构体也能够定义变量,所以我们也可以定义结构体类型指针来指向它。

同样的定义结构体指针常用有2种方法:

第一种:

第二种:

这里定义了一个结构体变量Today, 和一个结构体指针变量pStuToday, 然后pStuToDay指向Today, 结构体指针可以通过两种方式来访问结构体变量的成员。

五、 包含结构体的结构体

结构体的成员不仅可以是字符型、整型、数组型数据类型,也可以是结构体。

例如学生信息的结构体,学生信息包含姓名,学号,姓名,性别,出生日期等数据,而出生日期又包含年月日这3个成员。

所以把出生日期可以单独声明一个结构体,那么学生这个结构体呢包含出生日期这个结构体,这种就是包含结构体的结构体。

这里注意一下结构的结构成员引用的方法,另外就是注意结构体里面还要结构体的结构体指针用法。

额….估计你听得有点晕,还是直接看图吧。

六、结构体产品应用

1.拿STM32标准库举例

结构体可以实现面向对象的编程思维,把GPIO、定时器这些外设当做一个外设封装起来。

而结构体成员就是这些外设可以配置的参数,也可以称为属性。

这样做最大的好处就是方便移植和使用,这就是为什么STM32的标准库兼容性能做到这么强。

2.产品的系统参数

比如说一些需要掉电保存的数据。

那简单来说,就是所有具备不同/相同数据类型组成的东西,你都可以用结构体封装起来。

封装的目的是为了更好地移植和使用。

那更多高级使用可以跟着无际单片机编程做项目去学习,比如说通过结构体做链表功能,做队列算法等等。

结构体是c语言非常重要,也是必须掌握的一个知识点。

它的应用远超乎我们想象,大家可以多去看看一些库源代码,协议栈代码,或者系统源代码。

相关推荐

  • 两个表格怎么匹配相同数据 excel表格筛选相同数据公式

    两个表格怎么匹配相同数据 excel表格筛选相同数据公式

    两个表格怎么匹配相同数据 excel表格筛选相同数据公式,数据,公式,表格筛选,名称,函数,输入,点击,函数参数,首先在两个Excel表格中分列列出名称和数据列,需要将表格2中的数据根据名称匹配到表格1的数据中。 点击“fx”插入函数并选择“vlookup”函数。 在函数参数中按下图的格式输入数据,转换成公式为:=VLOOKUP(A2,$D$2:$E$8,2,0) 点击确定并下拉公式即可根据表格2中的数据对应表格1的名称输入数据。...

  • 电脑怎么格式化清除所有数据?

    电脑怎么格式化清除所有数据?

    电脑怎么格式化清除所有数据?,格式化,清除,数据,电脑怎么,点击,备份,主页,控制,电脑怎么格式化清除所有数据? 1.在电脑空白处,单击鼠标右键,出现菜单后,点击个性化 2.进入个性化页面后,点击控制面板主页 3.进入控制面板主页后,点击 备份和还原 选项,打开 4.进入备份和还原页面后,点击 恢复系统设置或计算机选项,就可以格式化清除电脑所有数据了。...

  • 用什么软件可以辨认字体 10款文字类型识别软件

    用什么软件可以辨认字体 10款文字类型识别软件

    用什么软件可以辨认字体 10款文字类型识别软件,文字,识别软件,类型,用什么软件,字体,扫描,识别,文件,今天小编为大家带来的是字体识别软件免费下载2022,字体识别功能给大家的生活和工作带来了不少的便捷,比如一张图片上的文字,那我们就可以用字体识别功能,既方便又省时间,那接下来,小编就为大家介绍有哪些字体识别软件是免费的。 1、《扫描识别王》 这是一款文件扫描、文字识别、拍图识字、图片转文字、PDF内容编辑等等,在这个软件中都可以完成,深受用户好评的掌中扫描仪,...

  • 多组数据怎么做一个折线图 excel多组数据折线图制作方

    多组数据怎么做一个折线图 excel多组数据折线图制作方

    多组数据怎么做一个折线图 excel多组数据折线图制作方法,数据,折线图,制作方法,系列,对话框,单击,选择,文本框,excel多组数据折线图制作方法 1、将所需绘制折线图的数据输入到excel中去。这里以两组数据为例。 2、选择“插入”菜单,单击“折线图”,在“二维折线图”中选择第一个。 3、在excel自动生成的空白折线图区域任意位置鼠标右键单击一下,在弹出下拉菜单中单击“选择数据”。 4、在弹出的对话框中单击“图例项(系列)”下的“添加”按钮。 5、在弹出的...

  • 数据分析走势图怎么做 excel数据分析走势图制作方法

    数据分析走势图怎么做 excel数据分析走势图制作方法

    数据分析走势图怎么做 excel数据分析走势图制作方法,数据分析,制作方法,怎么做,选择,趋势,图表,布局,数据,excel数据分析走势图制作方法 1、首先打开excel表格,把基础数据汇总好。 2、全选需要制作趋势图的数据,在菜单栏点击插入选择折线图。 3、选择以后在图表布局里选择一个需要的图表模板。 4、选择布局1(或者根据所要表达的内容选择)。 5、选择以后能看到的结果图如下,箭头所示的位置,分别是标题和图例 6、图表做好以后,鼠标右键点击折线图,在出现的选...

  • 卖鞋子销售技巧和话术 卖鞋子必说的语言技巧

    卖鞋子销售技巧和话术 卖鞋子必说的语言技巧

    卖鞋子销售技巧和话术 卖鞋子必说的语言技巧,顾客,语言,简单,位置,随便,哪款,确认,有什么,卖鞋看似简单,想把鞋卖好却是需要本事的。 接下来简单分享几条卖鞋子时的销售技巧和话术,希望对用得着的朋友有帮助。 1、 在顾客来到店里的时候要用“欢迎光临”之类的语言来示意顾客已经知道他的到来,同时也让顾客知道了服务人员的位置。除了这样的话术,还可以说:“看中哪款鞋子随便试穿“等。 2、 如果遇到顾客不愿意营业员跟随的情况,要跟顾客保持一定的距离,同时注意顾客的目光,了解...

  • excel数据分析工具在哪里?怎么调出来?

    excel数据分析工具在哪里?怎么调出来?

    excel数据分析工具在哪里?怎么调出来?,分析工具,数据,开发工具,菜单栏,数据分析,选项,选择,选项卡,excel2016数据分析位于excel的开发工具选项卡的下方进行设置即可,只需要进入后,找到下方的加载项进入后选择分析工具库选项卡并确定,数据分析就会出现在菜单栏右上方了。具体查找步骤如下: 1、首先,打开Excel2016,然后找到菜单栏上方的开发工具选项; 2、接着,找到开发工具下方的加载项选项,然后点击进入; 3、点击后,会出现如图所示的界面,选择分...

  • 最容易涨粉的短视频 5种很容易上热门的短视频类型

    最容易涨粉的短视频 5种很容易上热门的短视频类型

    最容易涨粉的短视频 5种很容易上热门的短视频类型,视频,类型,潮流,共鸣,搞笑,性短,搞笑类,分享,短视频是当下非常火的行业,随着5G时代带来,短视频创业彻底火了。想要在抖音等短视频平台赚钱,一定离不开涨粉这件事情,涨粉有多难,做过的人肯定深有体会。当然,如果视频类型选好了,涨粉就会简单很多。那最容易涨粉的短视频是什么样的?下面就给大家分享5个种类。 类型一:搞笑短视频 搞笑类的短视频有很多种,比如将一个小段子通过真人表演拍摄出来,或者找一些搞笑视频素材,通过九锤...

  • 桌面时间日期天气显示怎样设置 华为手机桌面显示日期

    桌面时间日期天气显示怎样设置 华为手机桌面显示日期

    桌面时间日期天气显示怎样设置 华为手机桌面显示日期天气设置方法,设置,卡片,桌面,桌面显示,华为手机,方法,时间日期,组合,华为p30手机,鸿蒙3.0系统为例,最新的鸿蒙3.0系统提供了个性化的组合卡片,可以在桌面添加组合卡片,然后对卡片内容进行个性化编辑,添加进去各种小工具。 华为手机桌面显示时间日期天气设置方法 1、在手机桌面双指向内捏合屏幕,点击进入服务卡片。 2、点击组合卡片。 3、选择一款组合卡片添加至桌面。 4、将组合卡片添加至桌面以后,长按卡片点击编...

  • 怎么调手机时间 苹果手机设置时间和日期方法

    怎么调手机时间 苹果手机设置时间和日期方法

    怎么调手机时间 苹果手机设置时间和日期方法,日期方法,苹果手机设置,设置,手机时间,调整,日期,通用,点击,以苹果手机为例,调整时间在设置-通用-日期与时间,把自动设置关闭,点击下方的时间,就可以调整时间了。苹果手机设置时间和日期方法1.打开设置图标,进去设置页面后,找到通用选项,打开2.进去通用页面后,找到日期与时间选项,打开3.进入日期与时间页面后,把自动设置右侧的开关关闭,在下方点击时间4出现时间设置框后,向上滑动,就可以调整时间了。...

  • 断路器工作原理 断路器结构与原理

    断路器工作原理 断路器结构与原理

    断路器工作原理 断路器结构与原理,断路器,结构,工作原理,机构,触点,控制,动作,闭合,工作原理: 低压断路器的主触点是靠手动操作或电动合闸的。主触点闭合后,自由脱扣机构将主触点锁在合闸位置上。 过电流脱扣器的线圈和热脱扣器的热元件与主电路串联,欠电压脱扣器的线圈和电源并联。当电路发生短路或严重过载时,过电流脱扣器的衔铁吸合,使自由脱扣机构动作,主触点断开主电路。当电路过载时,热脱扣器的热元件发热使双金属片上弯曲,推动自由脱扣机构动作。 框架式断路器 当电路欠电压...

  • 抖音怎么设置自己想看的类型 抖音设置管理观看内容方

    抖音怎么设置自己想看的类型 抖音设置管理观看内容方

    抖音怎么设置自己想看的类型 抖音设置管理观看内容方法,抖音,类型,设置管理,方法,怎么设置,想看,点击,调节,抖音设置管理观看内容方法 1、点击右上角三条杠 2、点击使用管理助手 3、点击内容管理 4、点击管理更多内容 5、就可以调节就可以调节自己喜欢的类型了...

  • ppt打印如何去掉日期 PPT打印去掉日期设置方法

    ppt打印如何去掉日期 PPT打印去掉日期设置方法

    ppt打印如何去掉日期 PPT打印去掉日期设置方法,打印,日期,去掉,设置,方法,左上角,文件,编辑,PPT打印去掉日期设置方法1、打开PPT-左上角文件-打印-选择编辑页眉和页脚2、将日期和时间前面的勾去掉,点击全部应用3、然后打印预览,发现时间和日期没有了...

  • devc++怎么改成中文 devc++语言更改步骤

    devc++怎么改成中文 devc++语言更改步骤

    devc++怎么改成中文 devc++语言更改步骤,语言,更改,步骤,中文,点击,选项,界面,菜单,devc++语言更改步骤介绍 在完成软件的下载安装后,打开软件 1.打开界面后, 点击 上方的 Tools 菜单 2.在下拉页中找到并点击 enviroment options 选项 3.随后在弹出的界面中找到 Language 选项,并点击下拉页按钮 4.将 English 更改为 简体中文 ,并点击 OK 键保存设置即可。...

  • c语言里的%是什么意思 c语言%的意思及用法

    c语言里的%是什么意思 c语言%的意思及用法

    c语言里的%是什么意思 c语言%的意思及用法,运算,语言,程序,变量,算数,最终,情况,计算,c语言%的意思及用法 1)“%”取余算数符 c语言中%的意思是整数相除取余数,就是计算的结果了,%的运算分三种情况 z=x%y,如果xy,那程序运算的结果就是x除以y整除后的余数。 2)自加/减(++/--) 以++来说(“--”一样,不作累述),C语言中x++和...

  • 程序的三种基本结构是什么 程序的逻辑结构

    程序的三种基本结构是什么 程序的逻辑结构

    程序的三种基本结构是什么 程序的逻辑结构,程序,结构,循环,逻辑结构,分支,语句,执行,代码,顺序、分支、循环是组成程序的三种基本结构。无论一个程序多么复杂,它都是由这三种基本的逻辑结构组成的。下面我们依次来看看这三种结构。 顺序语句 顺序结构非常好理解:先做第一件事,再做第二件事、第三件事……这么依次下去 比如下面这段代码 代码的逻辑非常简单,先定义变量a,再定义变量b,定义c等于a+b,再把c的值打印出来。可以看到,代码就是一条一条依次执行的。 分支语句 分支...

  • 环境变量怎么设置 win设置环境变量教程

    环境变量怎么设置 win设置环境变量教程

    环境变量怎么设置 win设置环境变量教程,环境变量,设置,教程,怎么设置,点击,界面,编辑,添加,win10系统环境变量可以按照下列步骤设置。 1、首先将“此电脑”快捷方式添加到桌面上,添加方法是:在桌面空白处右键选“个性化”,然后在“主题”下找到“桌面图标设置”,选中“此电脑”,右键选择“属性”。 2、点击左侧“高级系统设置”。 3、接着点击“高级”下的“环境变量”。 4、然后就会看到以下界面,界面上方显示的是某个用户的环境变量,下方显示的是系统的环境变量,系统...

  • 电脑生产日期怎么查询 手把手教你查看

    电脑生产日期怎么查询 手把手教你查看

    电脑生产日期怎么查询 手把手教你查看,查询,查看,输入,版本,日期查询,运行,点击,方法,电脑生产日期查询方法 1、按win+R键 2、打开运行窗口 3、输入cmd,点击确定 4、输入systeminfo,回车。 找到BIOS版本一栏。此电脑显示为2022年9月15日即为电脑生产日期...

  • spss数据分析教程 spss数据分析软件使用教程

    spss数据分析教程 spss数据分析软件使用教程

    spss数据分析教程 spss数据分析软件使用教程,数据分析,教程,软件使用教程,描述,点击,指标,选项,统计,1、打开SPSS软件,点击【打开-文件-数据】。 2、找到一份【SAV的数据】,点击打开。 3、在工具栏中点击【分析-描述统计-描述】,打开描述对话框。 4、在描述性对话框中将要进行描述统计的变量放在【变量框】中,接着点击【选项】打开选项框。 5、勾选要知道的描述性指标,例如【均值、标准值、最小值最大值】基本的指标。 6、最后点击确定即可看到统计分析的结...

  • 养老院一般多少钱一月 不同类型的养老院收费参考

    养老院一般多少钱一月 不同类型的养老院收费参考

    养老院一般多少钱一月 不同类型的养老院收费参考,护理,费用,老人,机构,元到,床位费,院一,情况,当今社会,养老机构的种类让人眼花缭乱,根据性质的不同收费价格也大不相同。那么,养老院一般是怎样收费的呢? 养老院收费标准一般分为:房间费、床位费、伙食费、护理费、医疗费、暖气空调费、押金等。 一、一般养老院 一般养老院收费标准价格在4000元到8000元不等,床位费在1000至3000左右。首先要看老人的身体情况,完全不能自理的老人收费会比较多;不同的地区养老机构收费...