1、关于C语言结构体的引入
在实际问题中有时候我们需要几种数据类型一起来修饰某个变量。
例如一个学生的信息就需要学号(字符串),姓名(字符串),年龄(整形)等等。
这些数据类型都不同但是他们又是表示一个整体,要存在联系,那么我们就需要一个新的数据类型。
——结构体,它就将不同类型的数据存放在一起,作为一个整体进行处理。
2、C语言使用结构体变量进一步加强了表示数据的能力
2.1;结构体声明;
//申明一个结构体
struct book
{
char title[MAXTITL];//一个字符串表示的titile 题目 ;
char author[MAXAUTL];//一个字符串表示的author作者 ;
float value;//一个浮点型表示的value价格;
};//注意分号不能少,这也相当于一条语句;
这个声明描述了一个由两个字符数组和一个float变量组成的结构体。
但是注意,它并没有创建一个实际的数据对象,而是描述了一个组成这类对象的元素。
因此,我们有时候也将结构体声明叫做模板,因为它勾勒出数据该如何存储,并没有实例化数据对象。
下面介绍一下上面的结构体声明;
1、首先使用关键字struct,它表示接下来是一个结构体。
2、后面是一个可选的标志(book),它是用来引用该结构体的快速标记。
因此我们以后就可以这样创建数据对象
struct book library;//把library设为一个可以使用book结构体的结构体变量,则library这个变量就包含了其book结构体中的所有元素
3、接下来就是一个花括号,括起了结构体成员列表,及每个成员变量,使用的都是其自己的声明方式来描述,用分号来结束描述;
例如:char title[MAXTITL];字符数组就是这样声明的,用分号结束;
注意:其中每个成员可以使用任何一种C数据结构甚至是其他的结构体,也是可以的;
4、在结束花括号后的分号表示结构体设计定义的结束。
2.2;关于其struct声明的位置,也就是这段代码要放到哪里。同样这也是具有作用域的。
这种声明如果放在任何函数的外面,那么则可选标记可以在本文件中,该声明的后面的所有函数都可以使用。
如果这种声明在某个函数的内部,则它的标记只能在内部使用,并且在其声明之后;