结构体的基础芝士

拟墨画扇 提交于 2020-03-10 20:44:45

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幌子),系统不会给结构体类型分配空间,只会给结构体变量分配空间;

其实我只是为了加深自己印象啦,把自己脑子里记得东西写出来,写的时候自己也加深理解了嘻嘻*@@

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!