首页 > 编程知识 正文

c语言定义结构体的三种方式,c语言结构体定义和使用

时间:2023-05-03 18:25:19 阅读:259530 作者:4108


文章目录 一、前言二、名词解释三、结构体声明四、结构体定义及初始化五、运行六、结语

一、前言

结构体作为C语言中的重要一环,可以用它来对数据进行封装,把一些相似的成员放在同一个结构体中,其对于代码的可维护性以及移植性等带来的好处不言而喻。

当结构体变量被定义后,其内部成员会被系统自动分配在一段地址连续的内存空间中,这使得我们的引用操作也变得方便许多。

一些同学在刚接触结构体时,容易对结构体的定义以及声明这块搞不清楚,下面我把结构体的声明和定义归类总结了一下,分享给大家。

二、名词解释

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型。

简单来说就是:由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体(struct)。

三、结构体声明

结构体声明一般是放在一个.h文件中,当需要定义结构体时,再include包含一下该头文件即可。
头文件代码如下:

#ifndef __STRUCT_DEMO_#define __STRUCT_DEMO_/** 结构体的几种声明方式: * 一、使用typedef来重命名结构体。 */typedef struct _student_t //推荐,只声明结构体,不分配内存空间,需要用时另行定义 { int age; unsigned char score; char *sex; }student1_t;typedef struct //结构体名称可以省略 { int age; unsigned char score; char *sex; }student2_t;/** * 二、直接声明结构体 */struct _student3_t //推荐,只声明结构体,不分配内存空间,需要用时另行定义 { int age; unsigned char score; char *sex;}; struct _student4_t //声明结构体的同时把变量也给定义了,会分配内存空间,不推荐 { int age; unsigned char score; char *sex;}stu4,stu5;struct //同理,结构体名称也可以省略 { int age; unsigned char score; char *sex;}stu6;#endif

声明结构体是不占内存空间的,也不会生成变量,推荐在.h中对头文件进行声明。

四、结构体定义及初始化

在.c文件中对结构体变量进行定义

有几种定义方式,看代码:

#include "stdio.h" #include "struct_demo.h"/** 结构体初始化的几种方式: * */student1_t student1 = {18,90,"boy"}; //1、定义时赋初值,需要按顺序填写 student1_t student2 = { //2、定义时赋初值,可以打乱顺序 .age = 19, .score = 95, .sex = "girl"}; student1_t student3 = { //3、定义时赋初值,可以打乱顺序 age : 19, score : 95, sex : "girl~"}; //第四种方法是直接引用赋值,这里不再举例了。int main(){ printf("%d,%d,%srn",student1.age,student2.score,student3.sex); printf("%d,%drn",stu4.age,stu6.score); return 0;} 五、运行

六、结语

如您在使用过程中有任何问题,请加QQ群进一步交流。

QQ交流群:906015840 (备注:物联网项目交流)。

获取资料:微信扫描下方二维码,关注公众号:一个物联网项目的前世今生。

静晨出品:静之所想,晨之所计

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。