struct数据有3中初始化方法:顺序,C风格及C++风格的乱序。

1)顺序 
这种方法很常见,在一般的介绍C的书中都有介绍。顺序初始化的特点是: 按照成员定义的顺序,从前到后逐个初始化;允许只初始化部分成员;在被初始化的成员之前,不能有未初始化的成员。 
eg:

struct User oneUser = {10, "Lucy", "/home/Lucy"}; 

2)乱序(C风格)

顺序的缺陷是必须按成员定义的顺序逐个初始化,不能间隔。而乱序的方式则很好的解决了这个问题,因为这种方式是按照成员名进行。
eg:

struct User oneUser = { .name = "Lucy",  .id = 10, .home = "/home/Lucy" }; 

3)乱序(C++风格) 
C++风格的乱序初始化方式跟C风格的一样,只是它更常用在C++代码里。 
eg:

struct User oneUser = { name:"Lucy",  id:10, home:"/home/Lucy" }; 

注:

不论是哪种方式,都允许只初始化部分成员;未被初始化的成员默认为0(指针类型的成员默认为NULL)。两种乱序初始化方法,即可以用在C代码中,也可以用在C++代码中。

转载于:https://www.cnblogs.com/silentjesse/p/3225212.html

c语言 struct 的初始化相关推荐

  1. Go语言中的struct的初始化。

    Go语言中的struct的初始化. GO语言不比其他语言,在struct中,它没有构造函数,不必赋值也能不报错. 比如: type Student struct {name stringage int ...

  2. c语言数组特殊初始化方法

    C语言的常规初始化方法,我就不多说了,今天分享一下我之前看到的一种可以为指定位置赋值的方法. int arr[10] = {0,1,2,3}; // 这种大家都很常见把 但是这种呢 int arr[1 ...

  3. c语言 结构体 初始化,C语言结构体初始化

    C语言结构体初始化教程 在 C语言结构体初始化 语法 struct structName varName = {fileldValue1, fileldValue2, fileldValue3}; 参 ...

  4. C语言struct 函数,c语言struct的用法

    C语言中先申明结构体,也就是定义结构体具体形式,而后可以把它当做普通数据类型来修饰变量,也可以在定义类型时后面直接跟着定义几个变量,下面小编就为你介绍c语言struct的用法. 基本定义:结构体,通俗 ...

  5. c语言struct的作用和用法,c语言struct用法详解

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

  6. struct的初始化

    1.struct的初始化可以使用类似数组的方式,如下: struct Student { int _Age; string _Name; }; Student stu = {26,"Andy ...

  7. C/C++ | C语言字符数组初始化,有些赋值方式千万注意

    一.字符数组的定义和初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. charstr[10]={'I','','a','m','','h','a','p','p','y'}; ...

  8. golang 初始化并赋值_Go语言创建、初始化数组的常见方式汇总

    本文实例总结了Go语言创建.初始化数组的常见方式.分享给大家供大家参考.具体分析如下: Go语言的语法很灵活,以下展示了创建并初始化数组的多种方式: //数组初始化的各种方式 func arraySl ...

  9. c语言将数组初始化为1_c语言之数组初始化

    c语言之数组初始化 在c语言中,我们经常会有两种初始化的方式(一维数组): 方式一 int arr[20]; 这种方式是在c语言编译阶段对数组分配了固定的内存空间,但没有为c语言赋值,此时,对该数组进 ...

  10. 用JAVA定义两个结构体_c语言struct结构体的定义和使用

    c语言由于不像java,c#,c++等语言有对象,所以就用struct结构体来表示,其实作用是差不多的,下面来快速学习c语言struct结构体的定义和使用,以学生类student来举例,有三种定义方式 ...

最新文章

  1. ACMNO.40 C语言-子串 有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串
  2. 还只看花书,西瓜书?一文告诉你如何正确学习深度学习,从理论到实战。
  3. ASP.NET MVC 过滤器(一)
  4. 《按键消抖与LED控制》实验的个人思考与总结
  5. RAC对单实例DG redo大小日志修改
  6. 如何打开CMD命令行
  7. ArcGIS JS API 4.10跨域问题(本地切片无法加载)解决办法
  8. 手把手教会你(单/多)文件上传(并修改文件默认的最大最小值)
  9. php post获取dvi,如何利用http来发送post请求
  10. Linux 实现一个带有重定向功能的shell
  11. Day4 dict和set
  12. android省市区三级联动,NumberPicker实现省市区三级联动的效果
  13. 如何在网上下载自己需要的资源
  14. freeradius mysql_centos7 freeradius mysql配置
  15. 大数据的价值,主要体现在哪几方面?
  16. 同步电路与跨时钟域电路设计2——多bit信号的跨时钟域传输(FIFO)
  17. 如何进入华为P40 debug 模式/开发者选项模式
  18. c语言扇形打印图片,怎么做扇形图表?
  19. android(跳动的心)
  20. flink-cdc 使用

热门文章

  1. 删除HTML标签的正则表达式
  2. 【转】Postman 使用方法详解
  3. 炼数成金数据分析课程---10、python中如何画图
  4. python类 析构方法
  5. 一文让你秒懂互联网TCP/IP协议的深层含义
  6. OJ 21658::Monthly Expense(二分搜索+最小化最大值)
  7. Osql\sqlcmd工具管理 SQL Server
  8. Python 认识字典
  9. Box,( UVa, 1587 )
  10. SQL中一种类似GUID值的函数实现