当前位置:嗨网首页>书籍在线阅读

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 。在学习了结构的基本知识后,可以进一步了解结构的一些相关类型。