目录
结构体类型的声明
结构体初始化
结构体成员访问
结构体传参
对于上期指针初阶(2)我们后期还会讲数组指针是什么?大家可以先思考一下,后期我们会讲
1.结构体的声明
结构是一些值的集合,这些值被称为成员变量,结构的每个成员可以是不同类型的变量
数组是一组相同元素的集合
结构体其实是一组不一定相同类型元素的集合
在我们生活中
人:名字+性别+年龄+身高+身份证号码+地址.......
书:书名+作责+出版社+定价+书号......
复杂对象,不能通过内置类型直接描述和表示,就有结构体来描述复杂类型
看下图,我们应该怎么理解结构体呢???
左半边是结构体类型,右半边是结构体变量
结构体就相当于是相当于盖房子的图纸,拿着图纸照着图纸盖好一个房子,这个盖好的房子就能装东西了,图纸上是不能装东西的,右边的变量就向内存申请空间,有了类型我们就可以初始化了,根据结构体类型来初始化
这里的s2,s3,s4就是结构体变量,并且是全局变量,看下图
这里的typedef的意思是类型重命名,对struct Stu重命名为Stu,那也就是struct Stu s1 == Stu s1,在C语言中,没有对结构体类型typedef,struct关键字不能省略,希望大家能够多加注意
看代码
结构体里面可以包含另一个结构体变量,这里就强调这一个重点 结构体创建的方法,s1是全局变量,struct Stu s2也是一个全局变量(这个可能较难理解),也可以在,main函数里面创建局部变量s3
一个指针是8个16进制位,1个16进制位4个2进制位,也就是32个二进制位
对于struct B这个结构体类型则需按照以下的写法,然后.结构体成员访问操作符将你想要的数据一个一个打印出来
%.2lf是小数点后面保留两位的意思字符数组传值传的是数组首元素的地址,所以需用指针,但是为什么只打印了一个0呢
函数传参想改变值就需要传地址,利用指针改变值的大小,我蛮来看效果,看下面代码以及运行结果
但是这个代码稍显麻烦,这是有一个---->操作符,这样看起来更爽朗,更更加清晰,—>在操作符详解那一章已经给大家提及过了
本章终!