之前稍微用到了struct,看了一点基本用法。经过查阅参考书籍,对struct又加深了一些理解。
例程:
#include <stdio.h>
#define MAXTITL 41 //宏定义,书名最大长度41
#define MAXAUTL 31 //作者名最长31
struct book //结构模板,标记为book
{
char title [ MATITL ];
char author [ MAXAUTL ];
float value;
};
引用参考书例程,发现结构声明没有创建新的数据对象,而是描述了组成结构模板的元素。以后调用:
struct (关键字)book(该结构的快速标记)library(使用book结构设计的结构变量)
在结构变量的声明中,struct book所起的作用与int相似,例如可以同时定义两个变量,甚至可以定义一个指向该结构的指针:
struct book doyle,pan,* ptbook;
访问结构成员:
使用所定义结构的结构成员时,以例程中的book为例子;book.title,book.author是char型的数组,book.value是一个float型变量。在scanf("%.2f",&book.value);中,.的优先级高于&,其意义等价于scanf("%.2f",&(book.value));
定义结构的指定初始化项目
若只初始化book结构的成员value
struct book surprise = { .value = 10.00};
按顺序任意顺序指定初始化项目
struct book gift = { .value = 10.00,
.author = "James",
.title = "Rue for the Toad"};
结构和数组相似,初始化后结构各成员获得初始值,但其实际值为最后一次赋的值
struct book gift = { .value = 10.00,
.author = "James",
.title = "Rue for the Toad",
.value = 9.00};