目录
结构体的声明
结构体的基础知识
结构体的声明
结构体成员的类型
结构体变量的定义和初始化
定义
初始化
结构体成员的访问
结构体变量访问成员
结构体指针访问指向变量的成员
结构体传参
传地址
传结构体
结论
结构体的声明
结构体的基础知识
数组:一组相同类型元素的集合
结构体:一组不一定相同类型元素的集合
结构体的声明
列如定义一个学生信息
我们常见typedef开头的结构题,这是对结构体进行了重命名
定义结构体并不向内存申请空间,只有在使用的时候才向内存 ,就像做房子一样,只有在使用的时候才向内存申请空间
结构体成员的类型
结构体的成员可以是标量,数组,指针,甚至是其他结构体
结构体变量的定义和初始化
定义
结构体的定义有两种方法,一一种是在声明类型的同时定义变量
另一种单独定义
初始化
定义变量的同时赋值,按结构体中类型顺序依次初始化
结构体包含结构体的初始化
乱序初始化,需要用到 . 操作符
结构体成员的访问
结构体访问成员包括结构体变量访问成员和结构体指针访问成员
结构体变量访问成员
结构体变量的成员是通过操作符(.)访问的,点操作符有两个操作数
对结构体中的字符数组赋值用strcpy函数
结构体指针访问指向变量的成员
有时候我们得到的不是结构体变量而是结构体指针
可以用->操作符
结构体传参
传地址
传结构体
以上两种明显传地址更好,函数传参是需要压栈的,传结构体对象的话,如果结构体对象过大的话,参数压栈的系统开销较大,导致性能下降
数据拷贝浪费时间,浪费空间
结论
结构体传参的时候需要传结构体的地址