同步阅读进度,多语言翻译,过滤屏幕蓝光,评论分享,更多完整功能,更好读书体验,试试 阅读 ‧ 电子书库
结构就像是一个“超级数组”。在这个超级数组内,一个元素可以是char类型,下一个元素可以是float类型,再下一个可以是int数组。使用下标可以访问一个数组的各个元素。那么如何访问结构中的各个成员呢?用结构成员运算符点(.)就可以。例如,library.value就是指library的value部分。可以像使用任何其他float变量那样使用library.value。同样,可以像使用一个char数组那样使用library.title。因此,程序中有下面的代码:
以及:
在本质上,.title、.author和.value在book结构中扮演了下标的角色。
注意,虽然library是一个结构,但是library.value是float类型,可以像使用其他任何float类型变量那样使用它。例如,scanf(“%f”,…)要求float类型变量的地址,而&library.float正好是这样的地址。其中点拥有比&更高的优先级,因此这个表达式和&(library.float)一样。
如果有同样类型的另一个结构变量,可以使用同样的方法:
.title指book结构的第一个成员。注意本章开始处的程序如何用两种不同的格式打印出结构library的内容。这说明了在使用结构成员时拥有的自由。
现在已经拥有这些基础知识,您可以拓宽视野,看看结构的一些分支。您将看到结构数组、以结构为成员的结构、指向结构的指针,以及处理结构的函数。
14.3.3 结构的指定初始化项目C99支持结构的指定初始化项目,其语法与数组的指定初始化项目相似。只是,结构的指定初始化项目使用点运算符和成员名(而不是方括号和索引值)来标识具体的元素。例如,只初始化book结构的成员value,可以这样做:
可以按照任意的顺序使用指定初始化项目:
正像数组一样,跟在一个指定初始化项目之后的常规初始化项目为跟在指定成员后的成员提供了初始值。另外,对特定成员的最后一次赋值是它实际获得的值。例如,考虑下列声明:
这将把值0.25赋给成员value,因为它在结构声明中紧跟在author成员之后。新的值0.25代替了早先的赋值18.90。既然您已经掌握了这些基础的内容,现在,您可以拓宽学习内容来了解结构的一些相关类型。我们将学习结构数组、嵌套结构、指向结构的指针和处理结构的函数。
请支持我们,让我们可以支付服务器费用。
使用微信支付打赏
