第十四课

1,共用体(联合)

1,使几个不同的变量占用同一段内存空间的结构称为联合;
2,定义:
    union 联合类型名
{
   
    成员列表;
    
}3,共用体特点:
系统采用覆盖技术,实现共用变量各成员的内存共享,在某一时刻,存放的和起作用的是最后一次存入的成员值;
//由于所有成员共享同一内存空间,故共用变量与其各成员的地址相同;
//在共用体变量定义的同时,只能用第一个成员的类型值进行初始化;
//共用类型可以出现在结构类型定义中,反之亦然;
//共用体所占内存大小,为占内存最大的那个成员变量的大小;
4,用处:
    赋值IP地址:(例子)
    #include<stdio.h>
    #include<string.h>
struct IP
{
   
    unsigned char ip1;
    unsigned char ip2;
    unsigned char ip3;
    unsigned char ip4;
};
struct Ap
{
   
    union ap
    {
   
        struct IP;
        char apStr[16];
    };
};
int main()
{
   
    struct Ap ip;
    strcpy(ip.apStr,"192.168.0.0");
    printf("%s", ip.apStr);//输出192.168.0.0
    return 0;
}

2,枚举

1,枚举:具有有限个整型符号常量的集合,这些整型常量称为枚举常量;
2,定义:
    enum 枚举类型名//枚举不需要类型,本质上枚举就是整型
{
   
    枚举常量名,
    枚举常量名,
    ...
};
3,注意:
    //枚举是从第一个成员开始进行编号的,从0开始,依次递增(+1);//自动给第一个成员赋值为0;
    //也可以自己给成员赋值