结构体类型的通常格式:数组
struct 结构体名{成员列表};函数
1.数据类型能够不所有一致spa
2.方便描述对象指针
3.结构体成员能够嵌套其余的结构体,描述事物更加贴切对象
1.结构体类型名 结构体变量名;字符串
as:struct Student student1,student2;变量
2.在声明类型的时候同时定义变量数据类型
struct 结构体名{方法
成员表列数据
}变量名表列;
as:
struct Student{
..............
}student1,student2;
3.不指定类型名而直接定义结构体类型变量
//此种方法没有指定结构体名字,故,没法用这个结构体类型去定义其余变量
struct{
成员表列
}变量名表列;
结构体变量名.成员名
.的运算符的优先级最高,故,对student1.age++是对(student1.age++)进行自加运算,而不是对age进行运算
ps:strcmp字符串比较函数
1.struct 结构体名
{成员表列}数组名【数组长度】;
2.先声明一个结构体类型再用此类型定义结构体数组
结构体类型 数组名【数组长度】;
as:struct Person leader【3】;//leader是结构体数组名
3.对结构体数组的初始化,是在结构体数组定义的后面加上
={初始表列};
结构体指针就是指向结构体变量的指针,该结构体变量的起始地址就是这个结构体变量的指针。
若是把一个结构体变量的起始地址存在一个指针变量中,那么该指针变量就是指向该结构体变量
指向结构体对象的指针变量既能够指向结构体变量,也能够指向结构体数组中的元素。指针变量的基类型必须与结构体变量的类型相同。
as:struct Student *pt;
(*pt)表示pt指向的结构体变量
(*pt).num表示pt指向的结构体变量中的成员num--------等价于pt->num
1.stu.成员名(as:stu.num)
2.(星号p).成员名(如(星号p).num)
3.p->成员名(as:p->num)
将一个结构体变量的值传递给另外一个函数方法有三:
1.结构体变量的成员做参数------属于“值传递”
2.用结构体变量做实参------属于“值传递”-------开销大,值没法改变,故该方法不多用
3.用结构体变量(或数组元素)的指针做实参,将结构体变量的地址传给形参