文章目录

  • 前言
  • 一、结构体是什么?
  • 二、结构体怎么定义?
  • 三、结构体变量怎么初始化?
  • 四、结构体变量怎么访问?
  • 五、结构体怎么使用?
  • 总结

前言

结构体在C语言和C++语言中都是重要的概念,它们广泛应用于程序设计中,可以用来表示一些复杂的数据结构,比如链表、树、图等等。
通过定义结构体,程序员可以更加灵活地组织数据,提高程序的可读性和可维护性。


一、结构体是什么?

  • 结构体(Struct)是一种用户自定义的数据类型,可以将不同类型的数据组合在一起,形成一个新的数据类型
  • 结构体由一系列的数据成员组成,这些数据成员可以是不同的数据类型,包括整型int浮点型float字符型char指针等等。
  • 结构体也可以包含其他结构体作为成员。

二、结构体怎么定义?

struct 结构体名称 {数据类型 成员1名称;数据类型 成员2名称;数据类型 成员3名称;//...
} 结构体变量;

例如:

struct Student {char name[20];int age;char gender;
} stu;

还有其他几种变形写法:

  1. 不写结构体名称
struct {char name[20];int age;char gender;
} stu;
  1. 不写结构体变量
struct Student {char name[20];int age;char gender;
};
  1. 指向结构体的指针
 // todo
  1. typedef 创建新类型,相当于给 struct Student 起了别名 Stu。
    就可以用 Stu 来代替 struct Student。
typedef struct Student
{char name[20];int age;char gender;
} Stu;
// 现在可以用 Stu 作为类型声明新的结构体变量
Stu s1, s2[20], *s3;
  1. 结构体中也可以包含其他结构体
struct Person
{Student stu;int num;
} p;

三、结构体变量怎么初始化?

  1. 在定义时指定初始值
struct Student
{char name[20];int age;char gender;
} stu = { "宫水三叶", 16, "女" }
  1. 结构体定义后,使用时再初始化(适用于创建多个变量
struct Student
{char name[20];int age;char gender;
};
struct Student stu1 = { "宫水三叶", 16, "女" }
struct Student stu2 = { "宫水四叶", 14, "女" }

四、结构体变量怎么访问?

struct Student
{char name[20];int age;char gender;
} stu = { "你的名字", 18, "男" };printf("Student name: %s\n", stu.name);
printf("Student age: %d\n", stu.age);
printf("Student gender: %s\n", stu.gender);

五、结构体怎么使用?

  1. 作为函数参数传递
void print_student(struct Student stu)
{printf("Student name: %s\n", stu.name);printf("Student age: %d\n", stu.age);printf("Student gender: %s\n", stu.gender);
}struct Student
{char name[20];int age;char gender;
};struct Student stu = { "立花泷", 18, "男" };
print_student(stu);

总结

  1. 先定义结构体;
  2. 再初始化结构体;
  3. 最后使用结构体。

C语言中的结构体怎么使用?相关推荐

  1. C语言中的结构体,结构体中数组初始化与赋值

    最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...

  2. Linux结构体变量报错,C语言中的结构体

    用户自己建立自己的结构体类型 1.  定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...

  3. c语言中定义结构体指针的作用,C语言结构体定义,使用及指针(1)

    前言 C语言中的结构体作为一大难点,并且对于需要学习数据结构的同学来说,这个结构是每次上课都会遇到的,所以,我们只有更深层次的理解结构体的知识,才能更好的掌握数据结构 结构体用处 结构体到底有什么用? ...

  4. C语言中对结构体排序

    在C语言中对结构体排序 用qsort()函数进行排序, qsort()里面要传入4个参数–qsort(数组名,数组长度,sizeof(),排序方法) 实验9-5 查找书籍 (20分) 给定n本书的名称 ...

  5. C语言中的结构体定义和使用例子

    C语言中的结构体定义和使用例子 一.结构体定义的三种方式 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对 问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共 ...

  6. 关于C语言中的结构体所占的字节数 sizeof(struct)

    C语言中的结构体所占的字节数 ,用sizeof求一个结构体的大小 C语言中用sizeof求结构体所占字节数的详细方法. 一.非嵌套结构体 struct one{char a; // 1(char所占字 ...

  7. c语言中的结构体定义和常见用法

    1.结构体简述和概念 结构体是C语言中一种重要的数据类型,该数据类型由一组称为成员(或称为域,或称为元素)的不同数据组成,其中每个成员可以具有不同的类型.结构体通常用来表示类型不同但是又相关的若干数据 ...

  8. step2 . day5 C语言中的结构体和枚举

    最近几天交叉的学习C和Linux,知识梳理的不是很仔细,有很多还没有搞明白的问题,所有耽误了几天更新笔记,也是在细嚼慢咽中,做了一个规划表,现阶段先把C后面的知识学好,然后再梳理Linux系统相关知识 ...

  9. C语言中如何计算结构体的字节大小

    结构体内存对齐 在计算结构体所占字节的大小时,不要直观地累加结构体内成员的字节大小,实际结构体存放在内存中是有一定的规则的,这里涉及的规则就是内存对齐原则. 声明一个结构体stu struct stu ...

  10. 成员变量隐藏c语言,C语言中隐藏结构体的细节

    我们都知道,在C语言中,结构体中的字段都是可以访问的.或者说,在C++ 中,类和结构体的主要区别就是类中成员变量默认为private,而结构体中默认为public.结构体的这一个特性,导致结构体中封装 ...

最新文章

  1. 值得分享!它们才是真正的宝藏网站,让人惊艳
  2. 关于service层、dao层,以及O/R Mapping之间的思考
  3. ASP.NET服务器应用程序不可用
  4. 图神经网络概述:Graph Neural Networks
  5. 域用户配置文件的漫游配置
  6. 算法导论——DFS深度优先搜索
  7. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波4 - 分段线性变换 - 对比度拉伸
  8. Linux - 命令
  9. 计算机应用问题,计算机应用的现状与发展的问题
  10. Linq 实现sql中的not in和in条件查询
  11. SDOI 2016 游戏
  12. Git+GitHub+SaltStack
  13. 拼多多淘宝虚拟店虚拟商品如何通过网盘发货机器人软件工具进行自动发货,怎么设置口令关键词?百度网盘自动发货机器人
  14. 吃土豆_nyoj_234(动态规划).java
  15. 计算机硬件找不到网络适配器,图文学习网络适配器不见了 【操作教程】 的恢复方法_...
  16. 小心身份证复印件的使用
  17. slot卡槽封装公共组件
  18. leaflet、cesium加载百度地图,加载自定义样式百度地图
  19. Netty入门教程——深入浅出Netty
  20. 为Spark 程序添加单元测试

热门文章

  1. SQL sever教程(实验2)数据库的查询和视图+SQL查询语句(一)
  2. 苹果app商品定价_刚刚,苹果爆料“差异定价”猫腻,原来App商家也挖坑!
  3. 逻技鼠标蓝牙连接Mac无法被logi Options检测到
  4. 蓝屏driver_php,Intel 存储控制器驱动版本引发的 Windows 蓝屏故障 0xC0000098
  5. 计算机小学知识竞答,小学生计算机LOGO语言竞赛试卷附答案
  6. 行业报告 | 企业AIGC商业落地应用研究报告
  7. int.TryParse非预期执行引发的思考
  8. DateTime TryParse方法,介绍
  9. html clear属性值,CSS clear both清除浮动
  10. 单片机设计_智能家居控制系统(AT89C51、HC05)