结构体、公用体、枚举

 1.结构体变量的定义与使用

  ♦ 定义结构体变量的方式

    • 先申明结构体类型再定义变量名

      struct stu  //stu:结构体类型名

      {

        成员列表

      };

      struct stu Lucy;  //Lucy:结构体变量名

    • 在声明类型的同时定义变量

      struct stu  //stu:结构体类型名

      {

        成员列表

      }Lucy,Bob;  //Lucy、Bob:结构体变量名

    • 直接定义结构体类型变量(无类型名)

      struct   //无类型名

      {

        成员列表

      }Lucy、Bob;  //Lucy、Bob:结构体变量名

  • 结构体类型名:指定了一个结构体类型,它相当于一个模型,但其中并无具体数据,系统对之也不分配实际的内存单元。

  • 结构体变量名:实际分配空间——为了能在结构体中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。

  ♦ 比较推荐的写法

    typedef struct stu

    {

      成员列表

    }STU;  //使用typedef重新定义一个结构体类型名

    STU Lucy,Bob;  //使用STU去定义相应的对象

    类型与变量分开定义,当一个结构体类型有多个文件需要使用时,可以将类型定义放在放在一个.h文件中,需要使用的文件包含相应的头文件即可。

  ♦ 注意事项:

    1.结构体变量成员必须单独使用:结构体变量名.成员名

      例如:Lucy.num  = 101;

         scanf("%c",&Lucy.sex);

         printf("%s\n",Lucy.name);

    2.具有相同类型的结构体变量可以相互赋值,多用于结构体成员整体操作(排序等)

      例如:Bob = Lucy;

    3.结构体可以在定义的时候进行初始化

      例如:STU Lucy = {12,"hello",\'m\'};

    4.允许嵌套定义结构体变量,成员引用多级引用

      例如:Lucy.birthday.month = 12;

#include <stdio.h> typedef struct stu { int num; char name[10]; char sex; }STU; int main(int argc,char *argv[]) { STU boy1,boy2,girl = {15,"lucy",\'w\'}; printf("input boy2 num name sex:"); scanf("%d %s %c",&boy2.num,boy2.name,&boy2.sex); boy1 = boy2; printf("boy1.num = %d,boy1.name = %s,boy1.sex = %c\n",boy1.num,boy1.name,boy1.sex); printf("boy2.num = %d,boy2.name = %s,boy2.sex = %c\n",boy2.num,boy2.name,boy2.sex); printf("girl.num = %d,girl.name = %s,girl.sex = %c\n",girl.num,girl.name,girl.sex); return 0; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpyxj.html