struct
结构就是创建一个模板,类似于数组,不过它可以拥有不同类型的变量,包括数组
1,建立结构声明
举例:
struct book{
char title[20];
char author[20];
float value;
};
其中struct是关键字,book是结构名,里面的titlt,author,value是拥有的变量
2,定义结构变量
struct book library;
它的意思是建立一个结构和book相同的名字叫library的结构体;
如果你觉得写变量名太累了,参考数组用法
struct book library[20];
ok,你一下子拥有了20个结构和book相同的结构体;
struct book *ptbook;
(表面这是一个访问book结构的类型的指针,指针名叫:ptbook);
3,访问结构成员
1,一般访问
library.value
(你把它当一个变量处理,它代表的library这个结构体的value部分,注意中间有个.)
2.利用指针访问
(*ptbook).value
(注意你要提前把指针赋值,如ptbook=&library;)
ptbook->value
4,将结构内容保存到文件中
fwrite(&library,sizeof(struct book),1,pbooks);
定位到library结构变量开始的位置,并把结构中所有的字节都拷贝到与pbooks相关的文件中。sizeof(struct book)告诉函数待拷贝的一块数据的大小,1 表明一次拷贝一块数据。至于pbooks的理解
结合下面
FILE *pbooks;(FILE主要用来定义带缓冲的文件指针)
pbooks=fopen("book.txt","a+b");(以“a+b”的模式打开文件book.txt。a+部分允许程序读取整个文件并在文件的末尾添加内容。b是
ANSI的一种表示方式,表明程序将使用二进制文件格式。对于不接受b模式的unix系统,可以省略b。