CC++中结构体的定义和typedef的使用

    xiaoxiao2022-06-29  37

    最近复习数据结构的时候,总是分不清structtypedef struct和他们后面跟的tag名称的位置和含义,今天就来翻书记录下具体结构体的定义和typedef的使用

    一、结构体定义

    1.C语言中结构体定义:C允许用户建立由不同类型的数据组成的组合型的数据结构。

    struct 结构体名  {成员表列};  只是建立了一个结构体类型,相当于模型而没有定义变量,其中并无具体数据。因此,需要定义结构体类型变量。

    2.定义结构体类型变量的方法:

      A.先声明结构体类型,再定义该类型的变量

       struct 结构体名  {成员表列}; 

       struct 结构体名  结构体变量名1,结构体变量名2;

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

        struct 结构体名 {成员表列}结构体变量名;

      C.不指定类型名而直接定义结构体类型变量

        struct {成员表列}结构体变量名;

    3.定义结构体数组并初始化

      struct 结构体名 {成员表列}数组名[数组长度]={"aas","sad","dsf"};

    二typedef关键字使用方法

    1.typedef可用来指定新的类型名来代替已有的类型名。

    2.使用情况:

      A.简单地用一个新的类型名代替原有的类型名

      typedef float Real;   //指定Real为类型名,作用于float相同

      B.命名一个简单的类型名代替复杂的类型表示方法,如命名一个类型名代替结构体类型

      typedef struct{成员表列}结构体变量名;    //声明一个新类型名结构体变量名,代替以上结构体,可用它去定义变量

    三、最后,看下区别:

    1.typedef struct 结构体变量名{成员表列}结构体变量名;

    2.struct 结构体变量名{成员表列}结构体变量名;

    3.typedef struct {成员表列}a1,a2,a3;相当于typedef a1 a2;typedef a1 a3;

    1和2的区别在于申请变量时,1需要写 struct node n;而2则需要直接写node n;

    3则表示结构体变量名都是结构体类型,声明变量时用任何一个都可以。

    以上,就是对struct和typedef的定义区分。

    转载请注明原文地址: https://ju.6miu.com/read-1125217.html

    最新回复(0)