结构体(二十五)

本文详细讲解了结构体在编程中的应用,包括结构体声明、成员类型、定义与初始化、成员访问和函数传参。通过实例阐述如何描述学生信息,探讨了结构体变量和指针访问的区别,并解析了Print2函数在传参效率上的优势。
摘要由CSDN通过智能技术生成

一    结构体涉及的内容

 二    结构体声明

①    基础知识

引出原因:'复杂对象',没办法直接的'描述',引出'struct(结构体)'

1. 结构是一些'值的集合',这些值称为'成员变量';结构的每个成员可以是'不同类型'的变量

备注: 数组是'相同'类型值的'集合'

②    结构的声明

struct tag {

member-list;

}variable-list;

// 结构体声明本身就是'一条'语句,需要";"分号结束

// variable-list-->逗号分割的'全局'结构体'变量'列表

③    需求

需求: 描述一个'学生'的相关信息

名字、年龄、电话、性别

// struct 结构体'关键字'

// Student 结构体'标签'

// struct  Student '结构体类型'  --> '重要!!!'

④    方式一

⑤    方式二

⑥    结构体成员的类型

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

三    结构体的定义初始化

①    初始化

'定义'变量的同时'赋初值'

备注: 在'不同位置','不同形式',两种'方式'初始化

②    结构体嵌套初始化

结构体的'成员'包含'其它结构体'

四    结构体成员访问

①    结构体变量的方式

结构体变量访问成员:结构变量的'成员'是通过'点操作符(.)'访问的

备注: 点操作符'接受'两个操作数

②    结构体指针的方式

结构体指针'访问'指向变量的成员,有时候我们得到的'不是'一个结构体变量,而是'指向'一个'结构体的指针'

五    结构体函数传参

①    理解

函数'传参'的时候,参数是需要'压栈'的

②    结构体传参

1)传结构体变量  VS  结构体指针

2)对比

问题:上面的 Print1 和 Print2 函数'哪个好些'?

答案:首选'Print2'函数

原因:函数'传参'的时候,参数是需要'压栈'的;如果传递一个'结构体对象'的时候,结构体过大,'参数压栈'的的'系统开销'比较大,所以会导致'性能的下降'.

结论:结构体'传参'的时候,要传'结构体的地址'

++++++++++++++++++'具体分析'++++++++++++++++++

1.  Print1 '形参'是'实参'的临时'拷贝';如果结构体对象比较大,时间('拷贝时间长')、空间('栈占用内存大')

2.  Print2  传一个'指针',无法是'4/8'个字节

3)数据结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值