一、结构类型及其作用
结构类型:把不同类型数据项组织成一个整体。
作用:可以将几个有密切联系的数据组织为一个整体。
二、结构体
1.结构体类型定义格式:
struct[结构体类型名]
{
数据类型名1 成员名1;
数据类型名2 成员名2;
......
数据类型名n 成员名n;
};
结构体类型是一种构造类型,与int,char一样是数据类型的标识符。
其本身不占用内存,只有定义了变量是才会为该变量分配结构类型分配所需要的内存。
2.结构体变量的定义方法
1.间接定义法
struct 结构体类型名
{
数据类型名 1 成员名1;
......
数据类型名 n 成员名n;
}
struct 结构体类型名 变量名列表;
2.直接定义法
struct Student_Info
{
char sex;
char name[20];
char no[9];
unsigned int age;
unsigned int classno;
} studentl,student2;
注意:
1.结构体类型与结构体变量是两个不同概念,与int类型和int变量区别一样
2.结构体可以嵌套
3.结构体中的成员名可以与程序中的变量名同名
3.结构体变量的引用
非指针访问格式:结构体变量名.成员名
指针型结构体访问格式:结构体指针->成员名
4.结构体变量赋值
(1)结构体变量初始化赋值
1.先定义后赋值
struct 结构体类型名
{...};
struct 结构体类型名 变量名={成员1的值,成员2的值,...};
2.边定义边赋值
struct 结构体类型名
{
...
}; 变量名={成员1的值,成员2的值,...};
(2)结构体在程序中赋值
逐一赋值
struct Student_Info stu;
stu.sex='M';
三、结构体数组
1.结构体数组的定义
struct Student_Info
{
char sex, name[20], no[9];
unsigned int age;
unsigned int classno;
} stu[10];
2.结构体数组的初始化
struct 结构体类型名
{...};
struct 结构体类型名 结构体数组[size]={{初始值表1} ,{初始值表2} ,...};