第一章 liux系列之结构体
前言
一、结构体是什么?
理解:为了将一个复杂的事物的属性(多个数据类型)表示清楚,人为的构造出来的一种可以存放不同数据类型或者相同类型的集合,称作为结构体类型。
规定:构造的结构体类型必须以struct开头+结构体名,俩个合起来被称为结构体数据类型。
//格式:
struct 结构体名
{
数据类型1 成员1;
数据类型2 成员2;
数据类型3 成员3;
......
};
二、结构体的使用方法
1.结构体变量
//格式:结构体类型 变量名;
typedef struct student
{
char name[20];int age;
float height;
}stu;//定义结构体变量
stu stu;
//引用成员
stu.name stu.age stu.height
2.结构体指针
//格式
结构体类型 *指针变量名;
typedef struct student
{
char name[20];
int age;
float height;
}stu;//定义结构体指针变量
stu *stu
//引用成员
scanf("%s %d %f", stu->name, &stu->age, &stu->height);
3.结构体数组
//格式:
结构体类型 数组名[元素个数];
typedef struct student
{
char name[20];
int age;
float height;
}stu;//定义结构体指针变量
stu stu[5];
//引用成员
for(i = 0; i < 5; i++)
{
scanf("%s %d %f", stu[i].name, &stu[i].age, &stu[i].height);
}
4.结构体嵌套
//例子:
typedef struct student
{
char name[20];
int age;
float height;
struct sex
{
char sex[2];
}Sex;
}Stu;//引用成员
Stu.name Stu.age Stu.Sex.sex;
5.结构体的字节对齐
//例子:
struct AA
{
int a;//4字节
short b;//2字节
char c;//1字节
};//共占8字节struct AA
{
short a;
int b;
char c;
}; //共占12字节
总结
结构体的各种使用方法会使得我们的代码更加可读化,简易化。