07-结构的初始化器
14.3.3 结构的初始化器
C99和C11为结构提供了指定初始化器(designated initializer)[1],其语法与数组的指定初始化器类似。但是,结构的指定初始化器使用点运算符和成员名(而不是方括号和下标)标识特定的元素。例如,只初始化 book 结构的 value 成员,可以这样做:
struct book surprise = { .value = 10.99};
可以按照任意顺序使用指定初始化器:
struct book gift = { .value = 25.99,
.author = "James Broadfool",
.title = "Rue for the Toad"};
与数组类似,在指定初始化器后面的普通初始化器,为指定成员后面的成员提供初始值。另外,对特定成员的最后一次赋值才是它实际获得的值。例如,考虑下面的代码:
struct book gift= {.value = 18.90,
.author = "Philionna Pestle",
0.25};
赋给 value 的值是 0.25 ,因为它在结构声明中紧跟在 author 成员之后。新值 0.25 取代了之前的 18.9 。在学习了结构的基本知识后,可以进一步了解结构的一些相关类型。