结构体类型的概念:
结构体是指包含多个单一的数据集合。
C语言中提供了结构体数据类型作为一个集合来处理这种复杂数据,一个结构体可以将多个单一信息结合在一起作为一个整体来使用。使用结构体时,首先要声明需要的结构体类型,一般形式shi:
struct结构体名{
数据类型1,结构体成员1;
数据类型2,结构体成员2;
数据类型3,结构体成员3;
......
};
结构体名相当于这个结构体的标记,它与标识符struct共同组成这个结构体的名称。每一个结构体可以包含很多成员,每一个成员都有一个数据类型,这些成员可以被声明为除该结构体类型本身外的任意有效数据类型。
定义结构体变量:
声明了结构体类型后,便可以使用该类型来定义结构体变量。C语言中定义结构体变量有三种形式,其实这也是声明结构体类型的三种形式:
1.声明结构体类型,并定义结构体变量;
2.不声明结构体类型,直接定义结构体变量;
3.使用typedef得到简化的结构体类型名,再定义结构体变量。
结构体的字节长度:
一般的系统中,为了寻址的方便,数据在内存中存储时一般以其本身数据类型的字节长度为基本单位对齐。而结构体数据在存储时是以其中字节长度最大的成员的字节数为基本单位对齐的。
结构体中的成员分配的内存空间是相邻的。结构体变量所占得字节空间数,即结构体数据类型的字节长度,一般等于各个结构体成员的字节长度和。
所谓对齐,是指将内存以一个固定的字节数作为最小单位分块,分配内存时只能一块一块地分配。
但是当相邻地结构体成员的字节长度长短不一时,由于内存对齐的影响,会使结构体额外占用一些空间,从而使其内存空间大于各个结构体成员的字节长度总和。
结构体的使用:
访问结构体成员:
使用成员操作符(.)可以访问结构体成员。成员操作符是一个二元操作符,前面的操作符为结构体变量,后面的操作符为结构体成员名。标准形式如下:
结构体名.结构体成员名;
只能通过直接访问结构体成员的方式来实现对成员的访问。
初始化结构体变量:
使用结构体变量和其他类型变量一样,在使用前最好对其初始化。为结构体初始化的方法与数组初始化类似,可以使用一个数值序列依次为结构体成员赋值。
结构体数组:
结构体数组就是以结构体类型为数组元素的数组。
定义结构体数组:
与定义结构体变量的方式相对应,定义结构体数组的方法有三种:
1.声明结构体类型,并定义结构体数组:
可以声明一个结构体类型后,再使用结构体类型来定义结构体数组。
2.不声明结构体类型,直接定义结构体数组:也可以直接定义结构体数组。
3.使用typedef:还可以先使用typedef来得到结构体类型的别名,再使用该别名来定义结构体数组。
结构体指针:
指向结构体变量的指针:定义一个指向结构体变量的指针与定义一个指向其他类型变量的指针方法基本一样。
一般的结构体变量只能使用成员操作符来得到成员,而结构体指针则可以通过箭头操作符来获得成员。
指向堆空间的结构体指针:
可以定义一个结构体指针变量并将其指向从堆上分配的内存空间。
指向结构体数组元素的指针:
将一个结构体数组元素的地址赋值给一个指针变量,便可以获得一个指向结构体数组元素的指针变量。如果用来赋值的地址是一个结构体数组的元素,便可以利用该指针变量和相对偏移量的嘴和来访问数组中的各个结构体元素。
分享到:
相关推荐
全国计算机等级考试实用应试教程二级C语言_第14章__结构体、共用体和用户自定义类型.ppt
C语言语法介绍_结构体 需要补充这方面知识的人可以看一下
结构体可以看做是C语言中的类 但是结构体中不能封装函数,只能有数据成员 这个程序演示了如何像c++的类一样在结构体中增加函数 如果有错误,欢迎交流
C语言程序设计_ 结构体与共用体 .ppt
c语言\C_15_结构体.ppt,简单易懂,容易掌握
C语言之结构体详细讲解,电子教程,ppt教程,C语言——结构体
C语言课程设计报告_职工信息管理系统_结构体数组实现程序源代码.doc
描述:为了解决java与C结构通信过程中结构体解析问题。 主要功能:能友好的用java处理任何发送的C结构体对象,并且能发送java对象转换成C结构体接收的二进制。 功能说明 1、基于spring框架开发 2、对于结构体定义...
c语言,有一组学生成绩进行排序,用结构体链表排序
C语言利用结构体数组实现学生成绩管理系统 本文主要介绍了使用C语言利用结构体数组来实现学生成绩管理系统的设计和实现。该系统可以管理某班的学生成绩,实现了十个主要功能:录入每个学生的学号、姓名和各科考试...
C语言用结构体实现一个通讯录,通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系...
这是一个用结构体做的小项目,注意全局变量的运用。跟链表不同。希望对初学C语言的朋友有所帮助!
C语言 第11章_结构体(-58 )2009-03-22(107)
使用C语言实现结构体信息的冒泡排序,简洁高效,值得分享。
5.1 为什么需要循环控制 5.2 用while语句实现循环 5.3 用do---while语句实现循环 5.4 用for 语句实现循环 5.5 循环的嵌套 5.6 几种循环的比较 5.7 改变循环执行的状态 5.8 循环程序举例
// 定义一个表示时间的结构体,可以精确的表示年、月、日、小时、分、秒,提示用户输入年、月、日、小时、分、秒的值,然后完整的显示出来。
C语言——结构体的读取与写入.zip
c语言词典结构体匹配法,qsort与bsearch
C语言-结构体及测试代码