这篇文章说明了什么是结构体,介绍了结构体的概念和使用优点,在C语言中如何使用和初始化结构体方法,通过详细的代码展开进行说明,希望该篇文章对你有所帮助

什么是结构体

在实际问题中,一组数据往往有很多种不同的数据类型。例如,登记学生的信息,可能需要用到 char型的姓名,int型或 char型的学号,int型的年龄,char型的性别,float型的成绩。又例如,对于记录一本书,需要 char型的书名,char型的作者名,float型的价格。在这些情况下,使用简单的基本数据类型甚至是数组都是很困难的。而结构体(类似Pascal中的“记录”),则可以有效的解决这个问题。结构体本质上还是一种数据类型,但它可以包括若干个“成员”,每个成员的类型可以相同也可以不同,也可以是基本数据类型或者又是一个构造类型。

结构体的优点

结构体的优点:结构体不仅可以记录不同类型的数据,而且使得数据结构是“高内聚,低耦合”的,更利于程序的阅读理解和移植,而且结构体的存储方式可以提高CPU对内存的访问速度。

定义

struct InitMember
{int first;double second;char* third;float four;
};

方法一:定义时赋值

struct InitMember test = {-10,3.141590,"method one",0.25};

需要注意对应的顺序,不能错位。

方法二:定义后逐个赋值

struct InitMember test;test.first = -10;
test.second = 3.141590;
test.third = "method two";
test.four = 0.25;

方法三:定义时乱序赋值(C风格)

这种方法类似于第一种方法和第二种方法的结合体,既能初始化时赋值,也可以不考虑顺序;

struct InitMember test = {.second = 3.141590,.third = "method three",.first = -10,.four = 0.25
};

这种方法在Linux内核(kernel)中经常使用,在音视频编解码库FFmpeg中也大量频繁使用,还是很不错的一种方式。

方法四:定义时乱序赋值(C++风格)

这种方法和前一种类似,网上称之为C++风格,类似于key-value键值对的方式,同样不考虑顺序。

struct InitMember test = {second:3.141590,third:"method three",first:-10,four:0.25
};

到此这篇关于C语言使用四种方法初始化结构体的文章就介绍到这了

简单介绍C语言使用四种方法初始化结构体相关推荐

  1. Golang简单写文件操作的四种方法

    package mainimport ("bufio" //缓存IO"fmt""io""io/ioutil" //io ...

  2. 前辈学习C语言的四种方法,实际上不管学什么语言,都行之有效!

    如果新手要学习编程,一些学长学姐都会建议从Python.PHP.Java开始学. 不过,作为工作多年的一名程序员,我还是建议你从C语言开始,为什么这么说,我相信你以后会慢慢的明白. 那么,如何学习C语 ...

  3. C语言四种方法求最大公约数

    一.实验要求 运行最大公约数的常用算法,并进行程序的调试与测试,要求程序设计风格良好,并添加异常处理模块. 二.实验方法(四种) 1.辗转相除法(欧几里德法) C语言中用于计算两个正整数a,b的最大公 ...

  4. ArcEngine实现要素类排序的四种方法

    ArcEngine的排序方法有多种,下面介绍一下主要的四种方法. 准备数据 测试数据如下图所示:新建一个Geodatabase的要素类,其中Name为道路名称,Width为道路宽度,下面将根据Widt ...

  5. linux忘记root密码怎么办——重置root密码的四种方法

    linux忘记root密码之后,可以通过修改bootloader启动项的参数,进入系统,重新通过passwd指令修改root 密码. 下面介绍了常用的四种方法,在不同的场景可以选择不同的方法进行roo ...

  6. 实现单例模式四种方法--java

    单例模式(Singleton Pattern)属于创建型模式,它确保在同一个进程内,单例类只有一个对象,并且 该对象对所有其他对象提供访问,常见的如Windows系统下的资源管理器.Spring Be ...

  7. 前端面试题:使用css生成田字格的四种方法

    使用css生成田字格的四种方法 html结构 css基础样式 第一种 flex布局 第二种 绝对定位 第三种 css瀑布流 第四种 float浮动 html结构 <div class=" ...

  8. C语言实现求解斐波那契数列的四种方法及优化处理(递归,迭代,特殊性质公式,矩阵快速幂)

    众所周知,斐波那契数列是非常经典的一个数列,它的数学公式如下 为了便于观察,我们列出它的几项:0  1  1  2  3  5  8  13  21...... 下面我们将介绍四种方法来用C语言计算机 ...

  9. c语言中字符串去掉逗号,JS四种方法去除字符串最后的逗号

    window.οnlοad=function() { var obj = {name: "xxx", age: 30, sex: "female"};//定义一 ...

最新文章

  1. 苹果笔记本适合学python吗_千万别花冤枉钱!大学生买本得这么选!
  2. ACM 推荐blog汇总及OJ
  3. 检测到目标服务器启用了trace方法_综述:目标检测中的多尺度检测方法
  4. 用什么方式链接oracle数据库,使用cx_Oracle 连接oracle数据库的几种方式
  5. 实现根据id查询房源数据的GraphQL服务
  6. VC6.0蕉HOOK_timeGetTime 达到变速效果
  7. 数字通信系统中的均衡技术
  8. 3.CM3内核架构-寄存器
  9. 字符url编码_HTML URL编码字符参考
  10. 【codevs1282】约瑟夫问题
  11. 华泰证券高薪诚聘 技术大牛/运维平台架构师
  12. Process Hacker工具使用
  13. 【Fiddler】从零开始学习Fiddler
  14. CSS(刷漆)学习总结
  15. 用matlab来计算函数,Matlab函数求导教程
  16. linux系统下安装oracle客户端
  17. 最详细移动硬盘安装linux过程,装在移动硬盘上的linux系统不能在另一台电脑启动的解决办法
  18. Cisco交换机配置VTP
  19. dnfdpl服务器维护了,魔兽世界TBC:地狱火半岛隐藏的“大恐怖”,魔能机甲成双出没!...
  20. 每日阅读:你如何过一天,你就如何过一生

热门文章

  1. 范进中举,读个博士到底有多难?看看就知道了!
  2. golang实践LSM相关内容
  3. 邮件服务器SMTP概述
  4. Python异步通信模块asyncore
  5. 二叉树中第二小的节点
  6. 二叉树的层序遍历 II
  7. 线性回归之模型的保存和加载
  8. 如何在 1 秒内将 50 个 OpenCV 帧上传到云存储
  9. 7个最佳的学习Python编程的开源库
  10. PHP获取客户端真实IP的自定义函数