C语言中结构体(struct)的几种初始化方法

 更新时间:2016年08月29日 10:06:03   投稿:daisy  
相信大家都知道struct结构体是C语言中非常重要的复合类型,初始化的方法很多,那么小编下面对这些方法进行总结,便于自己和大家以后查阅,有需要的可以参考借鉴。

本文给大家总结的struct数据有3种初始化方法

     1、顺序

     2、C风格的乱序

     3、C++风格的乱序

下面通过示例代码详细介绍这三种初始化方法。

1)顺序

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

示例:

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

2)乱序(C风格)

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

示例:

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

3)乱序(C++风格)

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

示例:

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

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

以上就是这篇文章的全部内容,希望大家能够喜欢,如果有疑问可以留言交流。

相关文章

  • C语言循环控制入门介绍

    C语言循环控制入门介绍

    大家好,本篇文章主要讲的是C语言循环控制入门介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • C语言实现简单万年历

    C语言实现简单万年历

    这篇文章主要为大家详细介绍了C语言实现简单万年历,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • 基于C语言实现高级通讯录的示例代码

    基于C语言实现高级通讯录的示例代码

    这篇文章主要为大家详细介绍了如何利用C语言实现一个高级通讯录的功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以参考一下
    2023-01-01
  • C/C++编译报错printf was not declared in this scope问题及解决

    C/C++编译报错printf was not declared in 

    这篇文章主要介绍了C/C++编译报错printf was not declared in this scope问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 数据结构之堆的具体使用

    数据结构之堆的具体使用

    本文主要介绍了数据结构之堆的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C++实现ping程序实例

    C++实现ping程序实例

    这篇文章主要介绍了C++实现ping程序实例,涉及C++对于ICMP数据包的发送与回显处理,具有一定的实用价值,需要的朋友可以参考下
    2014-10-10
  • C++基本组件之内存池详解

    C++基本组件之内存池详解

    这篇文章主要为大家详细介绍了C++中的基本组件——内存池的相关知识,文中的示例代码讲解详细,对我们学习C++有一定的帮助,需要的可以参考一下
    2023-03-03
  • Qt开发之QTreeWidget的使用教程详解

    Qt开发之QTreeWidget的使用教程详解

    这篇文章主要为大家详细介绍了Qt中QTreeWidget使用的相关资料,文中的示例代码讲解详细,对我们学习Qt有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • 如何将C++源程序改写为C语言

    如何将C++源程序改写为C语言

    C++中主要的与C的区别最大而且最常用的特性及修改方法,接下来我们一起来学习他们吧
    2021-08-08
  • C++从汇编的视角审视对象的创建问题

    C++从汇编的视角审视对象的创建问题

    这篇文章主要介绍了C++从汇编的视角看对象的创建,从汇编的视角来看,调用构造器和调用 “返回对象” 的函数是一样的,从汇编的角度来看,对象就是一堆数据的排列,比如说最普通的对象就是数据成员按照声明顺序直接排列,需要的朋友可以参考下
    2022-01-01

最新评论