C语言C语言结构体定义的几种方法

嗬是结构体?

当C语言中,结构体(struct)指的是一律栽多少结构,是C语言中会师数据类型(aggregate
data
type)的等同类似。结构体可以叫声称也变量、指针或数组等,用以实现比复杂的数据结构。结构体同时为是一些素的聚集,这些元素称为结构体的成员(member),且这些成员可以吧不同的类别,成员一般用名字访问。

结构体的概念:

C语言结构体类型的定义模板盖为:

struct 类型名{
    成员表列
} 变量;
  • 当成员表列中好是几乎栽为主数据列,也可以是组织体类型。
  • struct 类型名{} 变量;后的分公司不可知漏

下让来概念结构体类型的几乎种方式

1. 优先定义结构体类型,再定义结构体变量。

struct student{
    char no[20];       //学号
    char name[20];    //姓名
      char sex[5];    //性别
    int age;          //年龄
};             
struct student stu1,stu2;
//此时stu1,stu2为student结构体变量

2. 概念结构体类型的以定义结构体变量。

struct student{
    char no[20];        //学号
    char name[20];     //姓名
      char sex[5];      //性别
    int age;            //年龄
} stu1,stu2;      

此时尚可继续定义student结构体变量如:
struct student stu3;

3.直定义结构体变量。

struct{
    char no[20];        //学号
    char name[20];      //姓名
      char sex[5];      //性别
    int age;          //年龄
} stu1,stu2;      

诚如不见面用第三栽定义方法,因为一直定义结构体变量stu1,stu2继就是无克还累定义该型的变量。

注意:

  1. 每当C语言中采取struct定义结构体类型后定义结构体变量时struct不能够大概,在C++中允许省略struct。

    在c中:
    struct student{
    ...
    };
    struct student stu1;    //struct不可省略
    
    在c++中:
    struct student{
    ...
    };
    student stu1;    //struct可省略
    
  2. 以C中定义结构体类型后历次定义变量时都使以struct,如果嫌累,我们得以如此:

    typedef struct student{
    ...
    }STUDENT;
    STUDENT stu1;
    

    使用typedef给struct student取一个”别名”STUDENT

  3. 当一些情况下还好下#define来实现还简化的构造体定义与变量的定义,但恐怕会见牺牲局部可读性。

    #define STUDENT struct student;
    STUDENT{
    ...
    };
    STUDENT stu1;
    

    typedef和#define用法不同,甚至好结合起来灵活应用,使用时必定要留意两者的不同之处。