一、结构体类型的声明
1.1、结构体基础知识
结构体是一些值的集合,这些值被称为成员变量。结构体的每一个成员都可以是不同类型的变量。
区分数组:
数组:一组相同类型的元素集合
结构体:一组可以使不同类型的元素集合
1.2、结构体的声明
二、结构体变量的定义和初始化
2.1、定义:
声明是定义变量—全局变量
在函数中定义—局部变量
2.2、初始化:
简单初始化
特殊初始化:
结构体嵌套结构体
三、结构体成员的访问
3.1、(.)操作符访问(变量)
格式:结构体变量.成员
3.2、(->)操作符访问(指针)
格式:结构体变量指针->成员
四、结构体传参
4.1、传值调用(传递变量)
函数需要开辟一个相同变量的空间,来存储传递的变量,在时间和空间上存在浪费。不可以改变原变量的值
4.2、传址调用(传递地址)
需要开辟一个地址空间来接收地址(4/8字节),可以通过地址改变原变量的值。
两种方式的打印效果一致,那么print1()和print2()那个更高?
答案:首选print2()函数
原因解释:函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。
结论:结构体传参是,要传结构体地址。效率高,可以修改原来的值。
扩展知识:函数调用的参数压栈
栈,是一种数据结构,
特点:先进后出,后进先出
只能从栈顶存放或取出数据
往栈中存放数据—压栈
从栈中取出数据—出栈
传参压栈解释:
制作不易,喜欢就点赞收藏吧~~~