【从0到1|c语言基础篇(结构体(初阶))


目录

  • 一、结构体的声明
    • 1.结构的基础知识
    • 2.结构的声明
    • 3.结构成员的类型
    • 4.结构体变量的创建和初始化
  • 二、结构体成员的访问
    • 1.结构体变量访问结构体成员
    • 2.结构体指针访问结构体成员
  • 三、结构体传参

一、结构体的声明 1.结构的基础知识
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。
结构是一种集合。结构种的每个成员可以是不同类型。
数组是一组相同类型元素的集合,放在数组中的所有元素类型是相同的。
2.结构的声明
struct tag//(结构体标签) { //(成员列表) //(类型名 成员变量名) member-list; }variable-list; //(结构体变量列表)

例如:
typedef struct Stu { char name[20]; //名字 int age; //年龄 char sex[5]; //性别 char id[20]; //学号 }Stu;//分号不能丢

struct: 结构体关键字,它表明是个结构体,结构体的声明必须有struct。
结构体标签: 它是你给你的结构体类型取名字
struct 结构体标签: 这表示一个结构体类型
成员列表: 可以有多个成员,每个成员有各自的数据类型和成员变量名。
结构体变量列表: 可以有多个变量,是使用结构体类型创建的变量,一般结构体变量列表省略不写,先进行结构体声明,之后再创建结构体变量。
3.结构成员的类型
结构的成员可以是标量、数组、指针,甚至是其他结构体。
【从0到1|c语言基础篇(结构体(初阶))
文章图片

4.结构体变量的创建和初始化 结构体变量的创建:
【从0到1|c语言基础篇(结构体(初阶))
文章图片

类型不占内存,只有用类型创建变量后才占用内存。
【从0到1|c语言基础篇(结构体(初阶))
文章图片

结构体变量的初始化:
初始化: 创建变量的同时给变量赋值
【从0到1|c语言基础篇(结构体(初阶))
文章图片

二、结构体成员的访问
结构体变量 . 结构体成员变量
结构体指针 -> 结构体成员变量
1.结构体变量访问结构体成员
结构体变量通过点操作符(.)访问结构体成员
【从0到1|c语言基础篇(结构体(初阶))
文章图片

2.结构体指针访问结构体成员
结构体指针通过操作符(->)访问结构体成员。
【从0到1|c语言基础篇(结构体(初阶))
文章图片

三、结构体传参
结构体传参的时候,要传结构体的地址。
如果传的是结构体变量,形参是实参的一份临时拷贝,会造成大量内存空间的浪费。
【【从0到1|c语言基础篇(结构体(初阶))】如果传的是结构体的地址,形参接收到的是个指针,形参部分只要开辟一个指针变量的大小的内存空间,只需要4个字节或8个字节,减少空间的浪费。

    推荐阅读