结构体的定义、初始化以及typedef

xiaoxiao2021-02-28  71

一、首先来了解一下结构体的含义

结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构;

就我自己对结构体的理解就是当要用一个变量描述一个对象的多个属性时,普通的内置数据类型是表示不了的,这个时候就可以用结构体。

这里运用一个简单实例来展示结构体的一般表现形式

struct stu { int num; char name[20]; int age; }boy; int main() { struct stu boy = { 2017, "zhangsan", 20 }; printf("num:%d name:%s age:%d",boy.num,boy.name,boy.age); system("pause"); return 0; }

运行结果页面

二、结构体的定义

其定义的基本格式是

struct  结构名           

{

成员列表;

};

成员由若干个成员组成,每个成员都是结构体的组成成分,每一个成员都必须要有类型说明。

下面通过一个例子来展示一下结构体的定义:

1、先定义结构,再说明结构变量

struct stu { int num; char name[20]; int age; }; struct s1,s2;

2、在定义结构体类型的同时说明结构体变量

struct stu { int num; char name[20]; int age; }s1,s2;

3、定义一个匿名结构体,即不用说明结构体类型名,且这种结构体只能用一次,这种结构体与联合共用体一起使用时比较方便。

struct { int num; char name[20]; int age; }s1,s2;

三、结构体的初始化

1、定义的同时进行初始化

struct stu s1={2017,"alan",20};

2、先定义,再逐个初始化

struct stu s1; s1.num=2017; s1.name="alan"; s1.age=20;

3、先定义,再一次性初始化

struct stu s1; s1={2017,"alan",20};

4、指定的属性赋相应的值

struct stu s1={.num=2017,.name="alan",.age=20};

四、结构体的typedef

typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。若struct stu{ }这样来定义结构体的话。在定义 stu 的结构体变量时,需要这样写:struct stu s1; 若用typedef,可以这样写:typedef struct  stu{ }STU; 。在申请变量时就可以这样写:STU s1;这样使用起来更加方便。例如:

typedef struct stu { int num; char name[20]; int age; }STU;

现在我们放到主函数里验证一下

int main() { STU boy = { 2017, "zhangsan", 20 }; printf("num:%d name:%s age:%d",boy.num,boy.name,boy.age); system("pause"); return 0; }

可以看到与开头给的例子结果一致,达到了同样的效果。

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

最新回复(0)