如何理解结构体
我们现在需要描述一个人,会发现他的属性不是单一的类型,如身高可以是整型或者实型,年龄为整型,性别为字符型,显然我们不能通过数组将这些信息进行整合,故我们引入了结构体这个概念,他区分于数组的是,他的每个成员类型不限!
结构体的注意事项
①:结构体作为我们“构造而成”的数据类型,那么我们在使用和说明之前需要定义它。正如我们给一个存储空间命名一样,命名的过程中我们无需分配地址,结构须在主函数之前或者主函数之中声明,否则会报错
②:c语言中的结构体不能直接进行强制转换,只有结构体指针才能进行强制转换
③:相同类型的变量可定义在同一类型下
struct Student //Student结构体的标注,定义的时候可以不加标注
{
int number,age;
char name[20],sex;//char 类型姓名和性别;
float score;
};
④:结构体最后的分号一定要切记
代码解释结构体分配空间
struct Book
{
char title[20];//一个字符串表示title题目
char author[20];//一个字符串表示的author作者
float value;//价格表示
};//这边只是结构体的声明/定义,这边**不分配空间**
struct Book book1,book2;//****结构体变量的定义**,**分配空间****//使用Book标签的结构体,并声明变量book1,book2;
book1.vaule;//引用结构体变量
定义结构体
struct tag
{
member-list;
member-list;
.....
} variable-list;
如上,一般而言,结构体定义的时候,tag,variable-list必须存在一个
①:无标签:
struct
{
int a;
char b;
double c;
} wo;
②:无结构体变量声明
struct a
{
int a;
char b;
double c;
};
struct a b,b1[30],*t3;
③使用"typedef”创造新类型
typedef struct
{
int a;
char b;
double c;
}Simple2;
Simple2 u1,u2[20],*u3;//Simple2作为类型声明新的结构体变量