1、结构体的声明
1.结构体的基础知识
结构是一些值的集合,这些值被称为成员变量。每个成员可以是不同类型的变量。
数组是一组相同类型元素的集合
2.结构的声明
{ }里面是成员列表,外面是变量列表,变量列表可以不写但是分号不能丢
3.结构成员的类型
可以是标量、数组、指针,甚至是其他结构体 (结构体的嵌套)
4.结构体变量的定义和初始化
先声明类型,后创建变量
声明类型:
创建变量:
这样创建的p1变量是局部变量
如果在声明类型的后面直接创建变量的话是全局变量:
结构体嵌套初始化:
这里声明了一个st类型的结构体,在这个里面嵌套了一个peo类型的结构体(已经声明过了)
下面的p1和s叫结构体变量
因为s是嵌套结构体,所以里面的p也要加上{ }
3.14f:因为小数默认是double类型,加了f就是float类型了
2、结构体成员的访问
有两种访问方法:
一种是结构体变量.成员
一种是结构体指针->成员
先看主函数,想把结构体变量打印下来,可以直接在主函数中打印,此时直接用.操作符即可
注意结构体嵌套需要一层一层写如s.p.name
也可以传参,当传的是实参时,还是用.操作符
当传的是地址是,需要创建指针来接收,此时就要用结构体指针->成员变量来访问成员列表了
3、结构体传参
print2更好一点,也就是说结构体在传参过程中最好是传地址
因为:
1.若结构体占空间大,形参拷贝一份会浪费空间。
2.有时候需要对结构体实参进行赋值操作,print1无法做到