C_Learning(3)

/ 结构体  

  / 声明结构体类型的一般形式:

    struct 结构体名[--表示的是这个结构体的类型]   

    {

        成员列表   

    }; [不要漏掉这个";"]  

  / 声明结构可以放在main函数内,也可以放在main函数外     

  

  / 定义结构体变量的一般形式:   

    struct 结构体名 结构体变量名;   

    如:struct Product product1;    

  / 声明结构体的同时定义结构体变量(可以是多个)  

   如:

    struct Product   

    {    

      char name[10];    

      char color[10];    

      int price;   

    }product1,product2;

   / 引用结构体变量   

    / 不能将结构体变量作为一个整体进行输入输出   

    / 对结构体变量进行赋值、存储或运算,实质上就是对结构体成员的操作   

    / 引用的一般形式:    

      结构体变量.结构体成员    

      如:product1.name="icecream";     

        product2.price=20;    

        [相当于,product1.name才是真正的变量]    

  / 结构体类型的初始化   

    如:   

    (1) struct Student    

      {     

        char name[10];     

        char sex[10];     

        int grade;    

      }student1={"HanXue","W",3};   

    (2) struct Student student2={"WangJie","M",4};     

  / 结构体数组   

    / 一般形式    

      struct Student    

      {     

        char name[10];     

        char sex[10];     

        int grade;    

      }sudent[5];   

    / 数组中的各数据在内存中的存储是连续的

  / 指向结构体变量的结构体指针   

    / 结构体指针指向结构体变量的起始地址   

    / 一般形式    

      struct 结构体类型 *指针名;    

      如:strcut Student *pStruct;   

  / 引用    

    / 使用 . 运算符引用结构成员     

      如:(*pStrcut).name="HanXue";  [括号不能省略,因为"."的运算优先级最高]    

    / 使用指向运算符引用结构成员:pStruct -> 成员名     

      如:pStruct -> name = "HanXue";     

/ 共用体  

  / 共用体也称联合,它使几种不同类型的变量存放到同一段内存单元中,所以共用体在同一时刻只能有一个值,它属于某一数据成员  

  / 由于所有成员处于同一块内存,因此共用体的大小就等于最大成员的大小    

  / 共用体的一般形式   

    union 共用体名   

    {    

      成员列表   

    }变量列表;    

  

  / 共用体与结构体的区别   

    / 共用体定义了一块为所有数据成员共享的内存   

    / 结构体定义了一个由多个数据成员组成的特殊类型,结构体变量的大小是所有数据成员的总和     

    / 声明、定义、引用等和结构体类似

      / 对共用体变量进行初始化时,只需要一个初始化值,其类型必须和共用体的第一个成员的类型相同   

      / 如果第一个成员是一个结构体类型,则初始化值中可以包含多个由于初始化该结构的表达式   

      / 同一内存段可以存放集中不同类型的成员,但是每一次只能存放其中一种类型,而不是同时存放所有的类型;

      / 也就是说,在共用体中,同一时间只能有一个成员起作用   

  / 枚举类型   

    / 枚举变量的定义    

      enum 枚举变量名(枚举常量);   

    / 一个枚举变量包括一组相关的标识符,其中每个标识符都对应一个整数值,称为枚举常量;枚举常量的标识符默认从0开始依次叠加

原文地址:https://www.cnblogs.com/jan5/p/3381594.html