18.从零开始学习C语言--结构体
2013-08-15 19:09
225 查看
为什么需要结构体?
为了表示一些复杂的事物,而普通的基本类型无法满足实际需求,如存储全校所有学生的性别,年龄,成绩,班级。。。。。。
什么叫结构体?
把一些基本类型组合在一起形成的一个新的复合数据类型。
如何定义一个结构体(三种)?
第一种只定义了一种数据类型,在要使用这个数据结构时,再定义变量;
而二和三直接定义了变量,只能定义一次,不方便以后再定义同一种数据结构的变量,所以推荐使用第一种。
结构体变量的赋值和初始化:
同数组一样,只有在初始化时,才有连续赋值, 定义之后赋值的话只能单独赋值;
如何使用结构体变量中的成员(两种方式):
1、结构体变量名.成员名
2、指针变量名->成员名
指针变量名->成员名 表示指针所指向的结构体变量中的成员,等价于(*指针变量名).成员名,等价于结构体变量名.成员名。
通过函数来控制结构体时,形参的选择:
通过指针的知识,我们知道当在被调函数需要改写主调函数的实参时,应传递指针变量,否则直接传递变量值即可;
但是在控制结构体是,不管须不须要改写实参,都应该传递结构体指针变量,因为结构体变量是复合数据类型,所占字节较大,如果传递结构体变量,那么被调函数的形参同样须要那么大的字节来存储实参发送过来的数据,而使用指针则避免了这个问题,因为指针存放内存地址,始终只占4个字节,使用指针直接对原内存进行操作,不仅减少了内存耗用 ,还提高了执行速度。
结构体变量的运算:
结构体变量不能加、减、乖、除;
但结构体变量可以相互赋值。
为结构体动态分配内存:
为了表示一些复杂的事物,而普通的基本类型无法满足实际需求,如存储全校所有学生的性别,年龄,成绩,班级。。。。。。
什么叫结构体?
把一些基本类型组合在一起形成的一个新的复合数据类型。
如何定义一个结构体(三种)?
struct Student { int avg; float scorr; }
struct Student { int avg; float scorr; }std;
struct { int avg; float scorr; }std;
第一种只定义了一种数据类型,在要使用这个数据结构时,再定义变量;
而二和三直接定义了变量,只能定义一次,不方便以后再定义同一种数据结构的变量,所以推荐使用第一种。
结构体变量的赋值和初始化:
同数组一样,只有在初始化时,才有连续赋值, 定义之后赋值的话只能单独赋值;
struct Student { int avg; float scorr; } struct Student st1; st1.avg = 80; st1.scorr = 6.6;
如何使用结构体变量中的成员(两种方式):
1、结构体变量名.成员名
2、指针变量名->成员名
指针变量名->成员名 表示指针所指向的结构体变量中的成员,等价于(*指针变量名).成员名,等价于结构体变量名.成员名。
通过函数来控制结构体时,形参的选择:
通过指针的知识,我们知道当在被调函数需要改写主调函数的实参时,应传递指针变量,否则直接传递变量值即可;
但是在控制结构体是,不管须不须要改写实参,都应该传递结构体指针变量,因为结构体变量是复合数据类型,所占字节较大,如果传递结构体变量,那么被调函数的形参同样须要那么大的字节来存储实参发送过来的数据,而使用指针则避免了这个问题,因为指针存放内存地址,始终只占4个字节,使用指针直接对原内存进行操作,不仅减少了内存耗用 ,还提高了执行速度。
结构体变量的运算:
结构体变量不能加、减、乖、除;
但结构体变量可以相互赋值。
为结构体动态分配内存:
struct Student { int avg; float scorr; } struct Student *st1; st1= malloc(sizeof(struct Student));
相关文章推荐
- C语言学习趣事_18_关于结构体_求讨论
- C语言指针学习笔记:指向结构体的指针
- 结构体与共用体02 - 零基础入门学习C语言54
- 黑马程序员——ios学习笔记 C语言 结构体&链表&枚举
- 14.从零开始学习C语言--指针
- 15.从零开始学习C语言--指针和数组
- 21.从零开始学习C语言--算法
- C语言学习笔记-结构体、共用体、枚举
- C语言提高班学习笔记 lesson2 结构体
- 13.从零开始学习C语言--函数
- 学习C语言结构体
- 【学习笔记】【C语言】结构体和函数
- 结构体与共用体04 - 零基础入门学习C语言56
- 结构体与共用体06 - 零基础入门学习C语言58
- 8.从零开始学习C语言--while循环语句
- C语言学习笔记--------伊能C语言学习笔记------C语言结构体字节对齐机制
- C语言结构体学习系列之(二)
- C语言学习笔记9--结构体
- c语言学习之基础知识点介绍(十七):写入读取结构体、数组、结构体数组
- 【IOS 开发学习总结-OC-7.5】objective-c 的c语言特性——结构体