当前位置 博文首页 > 不负时光可怜人:【C语言程序设计】知识点汇总5——结构体与共用

    不负时光可怜人:【C语言程序设计】知识点汇总5——结构体与共用

    作者:[db:作者] 时间:2021-06-27 17:33

    8 结构体与共用体

    8.1 结构体声明与定义

    //1先声明后定义
    struct 结构体名
    {
        成员列表
    }//最后的分号不可丢
    struct 结构体名 变量名;
    
    
    //2声明与定义同时进行
    struct student
    {
        int num;
        char name[20];
        int age;
        char sex;
        float score;
    }stu1,stu2;
    
    //3直接定义变量
    struct
    {
        int num;
        char name[20];
        int age;
        char sex;
        float score;
    }stu;
    
    8.1.3结构体变量的初始化

    可以在定义时完成初始化,也可以定义之后初始化(要保证数据元素相互对应)

    8.1.4结构体变量的引用

    结构体变量名.成员名

    8.1.5 结构体数组

    stuct student stu[3];

    8.2 指向结构体类型的指针

    结构体变量占用一定的内存空间。是该变量所占据的内存段的起始地址

    如果使用指针操作,可以使用“->”运算符来访问结构体中的数据成员。

    {
        p->num;
        //等价
        (*p).num;
    }
    

    8.3 结构体变量做函数的参数

    三种方法:

    • 每一个结构体成员,作为简单变量传递
    • 整个结构体做参数
    • 传递指向结构体的指针

    8.4 (*)共用体

    节省内存,共用体变量所占长度等于最长的成员的长度

    特点:

    • 统一内存段可以用来存放几种不同类型的成员,但每一瞬间只能存放其中一种
    • 共用体变量中起作用的成员是最后一次存放的成员
    • 共用体变量地址及其成员的地址都是同一地址
    • 不能把共用体变量作为函数参数,也不能使函数带回共用体变量,但可以使用指向共用体变量的指针
    • 共用体可以出现在结构体中,结构体、数组等也可以成为共用体的成员。