想要知道typedef是什么,那么故事就要从 struct讲起,其实挺简单的。
总结:
定义存储结构的新变量时,需要struct关键字;
使用typedef定义、声明变量时就可以删除struct关键字。
没有struct这个关键字,代码看起来会更简单、更容易理解。
正片开始:
- 结构体类型——struct
结构体是一种较为复杂但却非常灵活的构造型数据类型(就是我们自己造出来的类型 ),里面可以有很多各种类型的成员。
最初我们先学习的是定义变量,但是一个变量只能给它赋一个值,
后来呢,为了实现定义一个变量就能给它赋多个值,就出现了【数组】,
但是,一个数组里面存放的元素都必须是同一种类型。
怎样才能定义一变量就能使用多个值,同时值还能不受类型的限制呢?
于是就出现了结构体。
结构体类型的说明格式,如下
struct 结构体标识名 (
取张三狗蛋都行){类型名1(int / double / float / char) 结构成员1,2,3……
类型名2(int / double / float / char) 结构成员1,2,3……
……
类型名n(int / double / float / char) 结构成员1,2,3……
}
举个例子,你家打算养一匹马(爱上一匹野马,可我的家里没有草原 )
你想知道这匹马的信息,比如年龄多大、有多高,父母亲叫什么等等。
struct Horse
{
int age;
int height;
char name [20];
char dad [20];
char mom [20];
};
[Horse] 是定义的结构标记符,也是我们新定义出来的结构类型,一个结构就是一个复合的数据类型。
[Horse] 的地位就好比int、float、double、char等数据类型。
假如,你想给你家的一匹马取名叫 “张三”;你就可以这样赋值
struct Horse zhang_san =