`
cm14k
  • 浏览: 31402 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

结构体的初始化

阅读更多

定义一个结构体:

#define LENGTH 256

struct book
{
	char title[LENGTH];
	char author[LENGTH];
	float value;
}; 
 

 

初始化方法:

 

(1)使用一个花括号括起来、逗号分隔的初始化项目列表进行初始化。每个初始化项目必须和要初始化的结构体成员类型相匹配。(类似于数组的初始化)

例如:

 

struct book java = {
	"Thinking in Java",
	"Bruce Eckel",
	108.00
};
 

(2)结构体的指定初始化项目

C99支持结构体的指定初始化项目,其语法与数组的指定初始化项目相似。只是,结构的指定初始化项目使用点运算符和成员名(而不是方括号和索引值)来标识具体的元素。例如,只初始化book结构的成员value,

struct book java={.value = 108.00};

可以按任意的顺序使用指定初始化项目:

struct book java = {
	.value = 108.00,
	.author = "Bruce Eckel",
	.title = "Thinking in Java"
};

正像数组一样,跟在一个指定初始化项目之后的常规初始化项目为跟在指定成员后的成员提供了初始化值。另外,对特定成员的最后一次赋值是它实际获得的值:

struct book java = {
	.value = 108.00,
	.auther = "Bruce Eckel",
	100
};

value的最终值为100。

 

注:这种结构体的初始化方式在Linux内核代码中很常见

 

 

 

分享到:
评论

相关推荐

    MFC中通过文件对结构体初始化

    通过文件对结构体初始化的一个简单的示例。该初始化是通过MFC做的。只是用到里面的函数

    结构体变量的初始化和使用

    根据给定的信息,本文将详细解释“结构体变量的初始化和使用”。首先,我们来了解一下结构体的基本概念、本例中的结构体定义及其初始化方法,随后深入探讨如何使用已定义的结构体变量。 ### 结构体基本概念 在C++...

    c++结构体的初始化和赋值1

    总结一下,C++中的结构体初始化和赋值是两个关键的概念。初始化在声明时完成,使用花括号列举初始值;赋值则在声明后进行,需要对结构体成员分别进行操作。对于包含数组的结构体,未初始化的数组元素和后续成员会...

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

    这里我们将详细探讨三种常见的结构体初始化方法。 1. 顺序初始化 这是最基础的初始化方式,要求按照结构体成员的定义顺序,从前到后逐个赋值。例如,我们有一个`User`结构体: ```c struct User { int id; char*...

    又一次被C99给坑了之结构体变量初始化问题

    "C99 结构体变量初始化问题详解" C99 标准中引入了标记化结构初始化语法,使得结构体变量的初始化变得更加灵活和方便。这种语法使用点运算符和成员名来标识具体的元素,可以按照任意的顺序使用指定初始化项目。这...

    浅谈C语言中结构体的初始化

    结构体的初始化是一个重要的概念,它确保结构体成员在使用前被赋予了预期的初始值,避免了未定义行为。本文将深入探讨C语言中结构体的初始化方法和相关细节。 首先,我们来看一下结构体的基本初始化方式: 1. **...

    typedef struct 与 struct 的区别及初始化

    在C/C++编程语言中,`typedef` 和 `struct` 是两种不同的声明结构体类型...而结构体初始化则涉及到成员变量的初始赋值,可以使用初始化列表来实现。在实际编程中,合理使用 `typedef` 可以提高代码的可读性和可维护性。

    C语言结构体共2页.pdf.zip

    2. **结构体初始化**: 定义了结构体类型后,我们可以创建该类型的实例,即结构体变量,并进行初始化。例如: ```c struct Student s1 = {"张三", 20, 90.5}; ``` 这行代码创建了一个名为`s1`的学生结构体变量...

    C语言 结构体范例代码

    ### 结构体初始化 我们可以使用大括号{}来初始化结构体变量,如下所示: ```c struct Student stu2 = {"张三", 18, 92.5}; // 初始化stu2,姓名为"张三",年龄为18,成绩为92.5 ``` ### 指针与结构体 我们还可以...

    学习情境二结构体的初始化和赋值PPT学习教案.pptx

    学习情境二结构体的初始化和赋值 本文档讲述了结构体的初始化和赋值,涵盖了结构体类型的定义、结构体变量的定义、结构体变量的初始化和赋值等方面的知识点。 一、结构体类型的定义 结构体类型的定义是指定义一个...

    ffmpeg2.0结构体转换到VS2008

    在将FFmpeg 2.0的结构体初始化代码转换到VS2008时,我们需要了解一些关键的知识点。 首先,FFmpeg的结构体定义可能包含C99风格的初始化器,如`{}`内嵌的初始化值。VS2008默认不支持这种C99特性,因此需要将其转换为...

    Linux操作系统学习-内核初始化.pdf

    它的定义位于 struct task_struct 结构体中,并采用了 gcc 的结构体初始化方式进行了直接赋值生成。 init_task 的主要成员变量包括: * state:进程的状态 * stack:进程的栈 * usage:进程的使用计数器 * flags:...

    c++里初始化结构体的一个比较的简单方法

    在C++编程中,初始化结构体是一个常见的任务,它确保结构体的所有成员变量都被赋予了合适的初始值。这里我们探讨两种不同的初始化结构体的方法,并分析它们的优缺点。 首先,让我们看看传统的方法,也就是在结构体...

    学习MISRA-C:3、指针、结构体、联合体的安全规范.zip

    1. 结构体初始化:结构体在定义时应尽可能完全初始化,以减少未定义行为的可能性。 2. 结构体成员访问:使用结构体指针访问成员时,确保指针有效且指向的内存区域足够大,防止越界访问。 3. 结构体大小对齐:了解并...

    C#中结构(struct)的部分初始化和完全初始化实例分析

    本文实例分析了C#中结构(struct)的部分初始化和完全初始化,分享给大家供大家参考。具体分析如下: 假设有这样一个值类型struct,如下所示: public struct Size { public int Length; public int Width; public...

    结构体基本知识

    或者使用大括号结构体初始化语法: ```c struct tagname varname = { .member1 = value1, .member2 = value2, ... }; ``` 11.6 结构数组的定义 结构数组的定义方式类似于普通数组,如: ```c struct tagname array...

    结构体数组.rar

    在C++中,也可以使用结构体初始化列表来一次性初始化整个数组: ```cpp Person people[] = { { "Alice", 25, 1.70f }, { "Bob", 30, 1.80f }, // ... 更多元素 }; ``` 结构体数组可以方便地用于处理一组具有...

    C语言语法大全-结构体

    8. **结构体初始化**: 结构体变量可以在定义时直接初始化,所有成员会按照提供的值进行赋值。例如: ```c struct Books book = {"C语言", "RUNOOB", "编程语言", 123456}; ``` 9. **结构体作为函数参数**: ...

    易语言结构体扩展模块源码

    3. 结构体初始化:通过API函数传递结构体的成员值,或者使用`memcpy`等函数从其他地方复制数据到结构体。 4. 结构体操作:包括读取、修改结构体的成员,可能需要用到指针操作和位运算。 5. 结构体释放:使用`free`...

Global site tag (gtag.js) - Google Analytics