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

06-访问结构成员

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

14.3.2 访问结构成员

结构类似于一个“超级数组”,这个超级数组中,可以是一个元素为 char 类型,下一个元素为 float 类型,下一个元素为 int 数组。可以通过数组下标单独访问数组中的各元素,那么,如何访问结构中的成员?使用结构成员运算符——点( . )访问结构中的成员。例如, library.value 即访问 libraryvalue 部分。可以像使用任何 float 类型变量那样使用 library.value 。与此类似,可以像使用字符数组那样使用 library.title 。因此,程序清单14.1中的程序中有 s_gets(library.title, MAXTITL);scanf("%f", &library.value); 这样的代码。

本质上, .title.author.value 的作用相当于 book 结构的下标。

注意,虽然 library 是一个结构,但是 library.value 是一个 float 类型的变量,可以像使用其他 float 类型变量那样使用它。例如, scanf("%f",...) 需要一个 float 类型变量的地址,而 &library.float 正好符合要求。 .& 的优先级高,因此这个表达式和 &(library.float) 一样。

如果还有一个相同类型的结构变量,可以用相同的方法:

struct book bill, newt;
s_gets(bill.title, MAXTITL);
s_gets(newt.title, MAXTITL);

.title 引用 book 结构的第1个成员。注意,程序清单14.1中的程序以两种不同的格式打印了 library 结构变量中的内容。这说明可以自行决定如何使用结构成员。