emmmmm
结构体是一种构造数据类型,可以将不同类型的数据构成一个集合,用于描述复杂的对象;
使用结构体可以实现大规模对象集合的存储与处理,并且可以通过运用结构体和动态内存分配构造出一种新型线性结构–链表;
结构体类型与结构体变量
结构体类型声明:
struct 结构体类型名 //结构体类型为用户自定义类型,需要先定义,后使用;struct是关键字
{
数据类型 属性名1; //“属性名”也可称“成员”
数据类型 属性名2;
......
}; //!!!!不能把这个分号给忘了一定;
类似代码
struct Family{
char name[10]; //姓名
int age; //年龄
char sex; //性别
char IDcard[19]; //身份证号码
char TElphone[12]; //电话号码
};
结构体类型定义还可以嵌套,即利用一个已定义的结构体类型作为另一个结构体类型的成员;
定义一个日期结构体类型
struct data
{
int year;
int month;
int day;
};
将struct Family 中的 age 属性修改成 struct data 类型的 BIRth 属性。
struct Family{
char name[10];
struct data BIRth; //HERE:int age;
char sex;
char IDcard[19];
char TElphone[12];
};
结构体变量的定义
结构体变量定义的格式
结构体变量定义好后,就可以与基本数据类型一样用于变量声明啦;
比如说前面定义好的 struct Family 结构体类型来声明家庭成员结构体变量;
struct Family Fam1; //意思就是 定义了名为Fam1的结构体变量
要注意这个结构体的完整名称是 struct Family。为了少敲字,可以用类型定义符 typedef 将 struct Family 命名一个新的名字;
就像这样:
typedef struct Family stuFam; //就是将 struct Family这个咚咚命名为 stuFam(这个名字啥的自己看着来吧);
然后呢这个
struct Family Fam1; //意思就是 定义了名为Fam1的结构体变量
就等于
stuFam Fam1;
Are you understand?
要注意!!struct Family 这个是结构体类型 / / stuFam 这个是结构体变量!!!
结构体类型呢他就是一个框架(emmm幌子),系统不会给结构体类型分配空间,只会给结构体变量分配空间;
其实我只是为了加深自己印象啦,把自己脑子里记得东西写出来,写的时候自己也加深理解了嘻嘻*@@
来源:CSDN
作者:betsy1013
链接:https://blog.csdn.net/betsy1013/article/details/104770113