初识结构体

目录

结构体的声明

结构体的基础知识

结构体的声明

 结构体成员的类型

结构体变量的定义和初始化

定义 

 初始化

 结构体成员的访问

结构体变量访问成员

结构体指针访问指向变量的成员

结构体传参

传地址

传结构体

结论


结构体的声明

结构体的基础知识

数组:一组相同类型元素的集合

结构体:一组不一定相同类型元素的集合

结构体的声明

初识结构体_第1张图片

 列如定义一个学生信息

初识结构体_第2张图片

  我们常见typedef开头的结构题,这是对结构体进行了重命名

初识结构体_第3张图片

定义结构体并不向内存申请空间,只有在使用的时候才向内存 ,就像做房子一样,只有在使用的时候才向内存申请空间

初识结构体_第4张图片

 结构体成员的类型

结构体的成员可以是标量,数组,指针,甚至是其他结构体

结构体变量的定义和初始化

定义 

结构体的定义有两种方法,一一种是在声明类型的同时定义变量

初识结构体_第5张图片

另一种单独定义 

初识结构体_第6张图片

 初始化

定义变量的同时赋值,按结构体中类型顺序依次初始化

初识结构体_第7张图片

结构体包含结构体的初始化

 初识结构体_第8张图片

 乱序初始化,需要用到 . 操作符

初识结构体_第9张图片

 结构体成员的访问

 结构体访问成员包括结构体变量访问成员和结构体指针访问成员

结构体变量访问成员

结构体变量的成员是通过操作符(.)访问的,点操作符有两个操作数

初识结构体_第10张图片

 对结构体中的字符数组赋值用strcpy函数

结构体指针访问指向变量的成员

有时候我们得到的不是结构体变量而是结构体指针

可以用->操作符

初识结构体_第11张图片

结构体传参

传地址

初识结构体_第12张图片

传结构体

 初识结构体_第13张图片

 以上两种明显传地址更好,函数传参是需要压栈的,传结构体对象的话,如果结构体对象过大的话,参数压栈的系统开销较大,导致性能下降

数据拷贝浪费时间,浪费空间

结论

结构体传参的时候需要传结构体的地址

你可能感兴趣的:(C语言,c语言,开发语言)