C语言 构造类型(结构体、枚举)

42.构造类型

构造数据类型:数组类型、结构体类型、共用体(联合)类型。


43.结构体:“结构”是一种构造类型,它是由若干“成员”组成的。每一个成员可以时一个基本数据类型或者又是一个构造类型。

结构体可以把功能相同的数据组织起来,存在一起,用的时候方便,而且在调用函数时,若传递参数较多,传一个结构体相对而言简单一些,很多系统自带的函数必须用结构体。

①定义:struct 结构名{成员表列};

    定义结构体变量:struct 结构体名 结构体变量名;——> struct student stu1;

  三种定义方法:

    1)先定义结构体,然后再定义结构体变量;   struct student{    };  struct student stu1,stu2;

    2)定义结构体的同时,定义结构体变量; struct student{    }stu1,stu2,stu3;

    3)使用匿名结构体定义结构体变量;struct {    };   struct car1;

②结构体变量的访问:

     stu1.name  stu1.sex //用变量名加.访问

③结构体变量存储原理:结构体占用的内存空间时每个成员占用的字节数之和(考虑对齐问题)。


44.结构体数组

①定义:1)定义结构体同时定义数组:

                    struct stu{

                        成员表列                    

                    }数组名[数组长度];

             2)先定义结构体,后定义数组:

                    struct stu{};

                    struct boy[5];

②初始化:1)定义结构体的时候初始化:

                        struct Student{

                            char name[20];

                            int age;

                        }boys[3]={{"heqian",19},{"dandan",1},{"heshuaize",20}};

                2)定义的同时进行初始化:

                        struct Student girls[2] = {{"",1},{"",2}};

                3)先定义后初始化,整体赋值:

                        struct Student ds[2];

                        ds[0] = (struct Student){"h",19};

                        ds[1] = (struct Student){"h",19};

                4)先定义结构体数组,后初始化:

                        struct Student stu[2];

                        strcpy(stu[0].name,"zhangsan");  //scanf("%s",stu[0].name);

                        stu[0].age=19;


45.结构体指针

一个指针变量当用来指向一个结构变量时,称之为结构指针变量。结构指针变量中的值时所指向的结构变量的首地址

①定义:struct 结构名 *结构指针变量名     

              struct stu *pstu;  //定义了指针只能指向stu结构体类型的结构体变量

②使用:

    struct student{

            char *name;

            int age;

        }stu1;

        

        struct student *pstu = NULL;

        pstu = &stu1;

    (*pstu).name,(*pstu).age)

    pstu->name,pstu->age


46.枚举类型

C语言提供了一种成为”枚举“的类型。在”枚举“类型的定义中列举所有可能的取值,被说明为该”枚举“类型的变量取值不能超过定义的返回。

应该说明的是,枚举类型时一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型

①定义:

    enum 枚举类型名 {枚举值表};

在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。

②枚举类型变量

    1)先定义枚举类型,再定义枚举变量:

        enum iColor{blue,red,yellow};

        enum iColor iPhoneColor;   //iphonecolor取值是有要求的,只能取枚举元素中的一个

    2)定义枚举类型的同时,定义变量:

        enum iColor{blue,red,yellow} iPhoneColor;

给枚举类型变量赋值:iPhoneColor = blue;

枚举类型变量的值:枚举类型定义完成后,系统会自动给枚举的每个元素都会赋值一个整型的初值

默认初值:从第一个元素开始值为0,以后每个元素的值,是上一个元素的值+1

也可以自己赋值:enum iColor{blue = 5,red = 3};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值