再识结构体

时间:2022-12-13 10:59:11

一、创建结构体的两种方法

再识结构体

第一种是在创建结构体类型后,直接创建结构体变量,注意此时的结构体变量是全局变量,而在主函数内部创建的结构体变量是局部变量


二、结构体初始化的“套娃”

再识结构体

结构体内部还可以再次定义结构体,但在初始化时,需要在{ } 里面再次{ } 


三、结构体传参

先说结论,结构体传参需要传地址!

再识结构体

问题:print1和print2哪个更好?

解答:

第二种好。
第一种将结构体s这个实参直接传过去,所以需要一个形参进行接收,而形参又是实参的一份临时拷贝,所以需要再一次创建一个结构体,而一个结构体创建所需要的内存可能很大,而print2将地址传过去,只需要指针进行接受,只需要4个或8个字节的内存空间,相比较而言,内存空间就占的很少了


四、栈

再识结构体

栈是数据结构的一种,栈只能从顶上加减,有定义插入一个元素:压栈,删除一个元素:出栈。

内存区的分配:

再识结构体

再识结构体

当函数传参时,把参数传过去这一动作也称为压栈,即函数传参时,参数是需要压栈的。