结构体(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 结构名
{
成员列表;
};
成员由若干个成员组成,每个成员都是结构体的组成成分,每一个成员都必须要有类型说明。
下面通过一个例子来展示一下结构体的定义:
struct stu
{
int num;
char name[20];
int age;
};
struct s1,s2;
struct stu
{
int num;
char name[20];
int age;
}s1,s2;
struct
{
int num;
char name[20];
int age;
}s1,s2;
struct stu s1={2017,"alan",20};
struct stu s1;
s1.num=2017;
s1.name="alan";
s1.age=20;
struct stu s1;
s1={2017,"alan",20};
struct stu s1={.num=2017,.name="alan",.age=20};
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;
}
可以看到与开头给的例子结果一致,达到了同样的效果。