目录

1.结构体简介

2.结构体的含义

​编辑

3.结构体的语法

3.1创建一个简单结构体

3.2给结构体赋值

3.3结构体的打印

4.结构体扩展内容

5.结尾彩蛋


1.结构体简介

在日常使用中我们很多时候需要处理大量数据,为了更加规整数据,编程语言为我们提供了结构体,他可以让我们处理数据时候更加规整,逻辑更加清晰。比如我们的学生管理系统,库存管理系统........这里都可以使用我们的结构体来让我们的数据看起来更加整齐。

结构体本质上还是一个变量,我们建立的结构体就是一种数据结构。比如我们的学生管理系统,我们需要学号,姓名,成绩,等等属性,这时候我们就可以建立一个和学生有关的结构体来把这些变量放到结构体,来处理数据。会显得十分高效。

再具体开始之前,日常求个三联。写作不易,给读者老板跪了。QAQ

2.结构体的含义

我们先来理解一下什么是结构体,不需要看懂代码,我们先捋清我们的逻辑关系

struct student{int id;char name[100];int num[2];}stu[2];

这是一个名字叫做student的结构体,包含了id,name,num这三个元素,其中id为整型,然后name是一个字符串类型的数组,num是一个整型数组。最后的stu[2]就是我们的结构体数组。

这里来类比下excl表格来让各位能更加捋清楚关系。众所周知,数组可以理解成表格所以我绘制如下表格来帮助给理解

student
结构体数组 id name num[ 0 ] num[ 1 ]
stu[0] 1 张三 99 80
stu[1] 2 李四 98 70

通过上表我们可以清楚的看出,我们的结构体数组是专门负责控制我们的数据行,而我们的结构体内的各个数据在应用上都和普通的应用是相同的。相信聪明的你已经看出了端倪,我们实际上就是构建了一个名叫student的表然后通过结构体数组来调整我们的数据行。你读到这里恭喜你已经基本了解结构体了,这也是最关键的一步。放个初音镇楼QWQ

3.结构体的语法

现在你已经有了对结构体的逻辑关系了,下面就要学会去使用它了。

3.1创建一个简单结构体

在创建一个结构体时,我们使用到关键字struct来进行创建其格式如下:

struct 结构体名字{结构体对象
}结构体数组;

各位要注意的是在结构体的最后一个花括号需要有分号结尾,这样才是整个语句闭合。

这里我们使用该方法创建一个结构体以便后期讲解使用代码如下:

struct student{int id;char name[100];int num[4];}stu[2];

3.2给结构体赋值

各位谨记一句话,结构体就是变量。所以在使用时候和变量没有区别。这里我没有涉及在程序内部给结构体赋值,我直接采用了传参的方法来对结构体进行赋值。

结构体变量的调用格式为:结构体数组.结构体对象。 既然涉及到了数组,我们自然而然的想到了for循环,这里是一段伪代码,并未考虑到结构体对象存在数组的形式。

for ( i = 0; i < count; i++)    //只对这一行数据进行遍历
{scanf("%d",&stu[i].id);}

没错就是这么简单,这个例子是针对结构体内部为常量的情况进行赋值的

接下来这个例子就是对我们结构体内部存在数组的情况进行赋值。

显而易见,我们使用两个for循环,分别用来控制我们的结构体数组和我们的结构体对象的数组,这里的应用和我们的二维数组是类似的。

for ( i = 0; i < count; i++)        //控制我们的结构体数组
{for (size_t n = 0; n < count; n++)//控制我们的内部数组{scanf("%d",&stu[i].id[n]);}}

这里进行一个小节:结构体数组用于控制我们的具体数据行标,我们真正存的东西是在我们的结构体内部,而最开始的那个,仅仅只是我们起了一个名字罢了,对我们的程序执行不会产生影响。

3.3结构体的打印

正所谓输出与输入相对,我们在打印结构体数据时候只需要把函数更换成printf即可完成,这里为了节省篇幅就不过多赘述,如果有问题可以在评论区提问。

4.结构体扩展内容

有人可能会好奇不同的结构体数组是否是指同一组数据呢?这里我先卖个关子,先看笔者的实验数据。

实验结果表明,我们重现创建的结构体数组s_t我们对其中元素进行赋值并没有影响到我们的结构体数组中的stu数组。由此可见,不同结构体数组是各自独立的,结构体仅仅是一个模板。

5.结尾彩蛋

看到这里相信各位已经能基本使用结构体了,笔者这里为大家准备了一个和结构体有关的小题目供大家练练手。题目解析的传送门======》》》》奖学金之结构体排序

呼两个小时终于写完了,都看到结尾了,求个一键三连不过分吧QWQ

【结构体】C语言结构体使用教程相关推荐

  1. c++ new一个结构体_C语言结构体,又一个纸老虎,纯干货讲解(附代码)

    来源:网络,排版整理:晓宇 微信公众号:芯片之家(ID:chiphome-dy)结构体的定义结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构.结构体和其他类型基础数 ...

  2. c语言事件结构体,C语言结构体史上最详细的讲解

    struct结构体数据类型 前言 我们知道,在C语言中有一些基本的数据类型,如char int float long double string(c99) 等等数据类型,他们可以表示一些事物的基本属性 ...

  3. C语言坐标结构,关于c语言结构体偏移的一点思考(一)

    1 引言 而在实际开发过程中,比较常见的场景是给定结构体变量的初始地址,如何访问结构体内每一个成员变量?这类问题的核心是如何快速的计算结构体成员变量的偏移地址.本文将和大家一起探讨结构体内成员变量偏移 ...

  4. c语言强制转换为结构体,C语言结构体的强制类型转换

    陈浩师兄03年的一篇博客<用C写有面向对象特色的程序>描述了用C语言来实现相似C++类继承的方法,这样方法的核心要点就是结构体的强制类型转换,让我来简单分析分析C语言中的结构体强制类型转换 ...

  5. C语言连接结构体,C语言结构体嵌套

    本篇文章帮大家学习c语言结构体嵌套,包含了C语言结构体嵌套使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. C语言中的嵌套结构体表示在一个结构体中可以使用另一个结构作为成员 ...

  6. 第十章 结构体_C语言共用体(C语言union用法)详解

    通过前面的讲解,我们知道结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员.在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union),它的定义格式为:  un ...

  7. C语言怎么存储结构体,C语言结构体Struct怎么使用?

    在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据.结构体的定义形式为:struct结构体名{结构体所包含的变量或数组};结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相 ...

  8. 让你不再害怕结构体-C语言结构体详解

    结构体:是一种复合数据类型,多种数据类型集合在一起用来描述事物的整体 与数组类似,数组是都个相同类型的数据合在一起,而结构是多个不同类型的数据合在一起. 结构体归根结底是一种数据类型,由程序员根据需要 ...

  9. 结构体嵌套结构体c语言,结构体的相互嵌套

    编程时要用到C语言中结构体的自引用,由于用的少,学得时候也没在意,趁用到,回忆一下. 结构体的自引用(self reference),就是在结构体内部,包含指向自身类型结构体的指针. 结构体的相互引用 ...

  10. c语言什么事结构体,C语言结构体定义是什么

    结构是由基本数据类型构成的.并用一个标识符来命名的各种变量的组合. 结构中可以使用不同的数据类型. 结构说明和结构变量定义: 在Turbo C中, 结构也是一种数据类型, 可以使用结构变量, 因此,  ...

最新文章

  1. python数学建模基础教程_Python数学建模极简入门(二)差分方程
  2. [SimplePlayer] 4. 从视频文件中提取音频
  3. Scrum仪式之Sprint计划会议
  4. python kill 进程,python 判断linux进程,并杀死进程的实现方法
  5. 德 梅齐里亚克的砝码问题matlab,德梅齐里亚克砝码问题之解
  6. teamcity_TeamCity构建依赖项
  7. codeforces 160A-C语言解题报告
  8. react-router 4.0 学习笔记
  9. C#中的引用传递、值传递
  10. 强悍的 Vim —— .vimrc(vim 配置文件)
  11. Palm应用开发之三appinfo.json 文件详解
  12. 老式计算机如何设置u盘启动,有谁清楚老式电脑怎么用u盘启动
  13. opencv区域提取
  14. Web前端基础知识总结
  15. 【MindSpore】【数据集】数据集内数据获取失败导致迭代器退出
  16. 服务器安装找不到lsi驱动,IBM 机架式服务器RAID卡驱动问题
  17. js前台提示:参数不规范,请检查json的格式和参数对应的类型是否正确
  18. Python骚操作3
  19. 易语言json置入_易语言json操作模块源码
  20. 班级纪念册php源码,6篇发自内心的同学班级纪念册后记,毕业同学录纪念册设计卷尾语...

热门文章

  1. SQL注入学习详细过程
  2. c语言程序设计教程韩立毛答案,c语言程序设计教程201X韩立毛徐秀芳书后练习题参考答案...
  3. P4_toturial练习1问题:ModuleNotFoundError: No module named ‘p4.tmp‘
  4. EasyExcel增加下拉选择框
  5. Windows 查看文件大小
  6. MusicLM:Generating Music From Text
  7. 干货!如何在训练中自动识别数据中潜在的不同分布并自适应?——以空间数据为例,应用不限于空间数据...
  8. 2022年RocketMQ面试题及答案
  9. Lyapunov直接法与间接法
  10. 有关wifi配置工具wpa_cli以及wpa_supplicant简单分析