C语言16-结构体
1.什么是结构体
在C语言中由于数组只能保存一组相同类型的数据,不能保存不同的数据类型的数据,所有C语言中引入的结构体,结构体有点面向对象的味道
2.结构体的申明
3.定义一个结构体类型
讲解了如果定义一个结构体类型,以及定义的结构体类型所占内存大小,只有定义结构体的时候才会分配空间
还讲解局部结构体和全局结构体,
4.访问结构体中的数据
5.定义结构体和结构体的三种方式
第一种方式先定义结构体,然后定义结构体变量,这种方式为结构体变量赋值有两种方式(1)在定义结构体的变量同时为变量赋值(这种要注意,不能先定义好了结构体变量之后在给变量赋值,否则语法错误,数组也是同样的)(2)单个单个为结构体中的成员赋值
第二种方式定义结构体的同时就定义结构体变量,然后直接为变量赋值
第三种方式就是在定义匿名结构体的同时定义结构体变量,然后直接为结构体变量赋值,但是这种结构体不灵活,不能重复使用
或者是定义完成了,一个一个成员赋值,千万不要定义完成了一起给值
6.结构体注意点
结构体不能递归自己
结构体中可以包含其它结构体
7.结构体数组
结构体数组有两种定义方式:
第一种先定义结构体,然后定义结构体数组变量的同时为结构体数组赋值(这种方式注意不能定义完结构体变量之后在为变量直接赋值,否则语法错误)
第二种在定义结构体的同时就定义结构体数组变量,然后再变量后面直接赋值(这种方式可以省略结构体的名称(也就是匿名结构体),也可以不省略,不省略的好处是下次还可以继续使用该结构体定义其它结构体数组)
8.结构体作为参数
结构体作为函数参数传递是按值传递的,是不会影响原来结构体中的数据的
9.指向结构体的指针
有了结构体指针之后我们可以有三种方式取出结构体中的数据
第一种直接通过结构体名.结构体成员名取出数据
第二种通过(*结构体指针变量名).结构体成员名
第三种方式是C++中的方式,通过(*结构体变量名)->结构体成员名

浙公网安备 33010602011771号