分类 十一. 结构体和共用体 下的文章

13.C语言类型定义符typedef

C语言不仅提供了丰富的数据类型,而且还允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取“别名”。类型定义符typedef即可用来完成此功能。例如,有整型量a、b、其说明如下:     int a,b; 其中int是整型变量的类型说明符。int的完整写法为integer,为了增加程序的可读性,可把整型说明符用typedef定义为:     t...

memory   2014-04-21  暂无评论

12.C语言枚举类型

在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分...

memory   2014-04-21  暂无评论

11.C语言链表的概念

在【例7-8】中采用了动态分配的办法为一个结构分配内存空间。每一次分配一块空间可用来存放一个学生的数据,我们可称之为一个结点。有多少个学生就应该申请分配多少块内存空间,也就是说要建立多少个结点。当然用结构数组也可以完成上述工作,但如果预先不能准确把握学生人数,也就无法确定数组大小。而且当学生留级、退学之后也不能把该元素占用的空间从数组中释放出来。用动态存储的方法可以很好地解决这些问题。有一个...

memory   2014-04-21  暂无评论

10.C语言动态存储分配

在数组一章中,曾介绍过数组的长度是预先定义好的,在整个程序中固定不变。C语言中不允许动态数组类型。例如:int n; scanf("%d",&n); int a[n];用变量表示长度,想对数组的大小作动态说明,这是错误的。但是在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题,用数组的办法很难解决。为了解决上述问题,C语言提供了...

memory   2014-04-21  暂无评论

9.C语言结构体指针变量作函数参数

在ANSI C标准中允许用结构变量作函数参数进行整体传送。但是这种传送要将全部成员逐个传送,特别是成员为数组时将会使传送的时间和空间开销很大,严重地降低了程序的效率。因此最好的办法就是使用指针,即用指针变量作函数参数进行传送。这时由实参传向形参的只是地址,从而减少了时间和空间的开销。【例11-7】计算一组学生的平均成绩和不及格人数。用结构指针变量作函数参数编程。struct stu{ ...

memory   2014-04-21  暂无评论

8.C语言指向结构体数组的指针

指针变量可以指向一个结构数组,这时结构指针变量的值是整个结构数组的首地址。结构指针变量也可指向结构数组的一个元素,这时结构指针变量的值是该结构数组元素的首地址。设ps为指向结构数组的指针变量,则ps也指向该结构数组的0号元素,ps+1指向1号元素,ps+i则指向i号元素。这与普通数组的情况是一致的。【例11-6】用指针变量输出结构数组。struct stu{ int num; ...

memory   2014-04-21  暂无评论

7.C语言指向结构体变量的指针

一个指针变量当用来指向一个结构变量时,称之为结构指针变量。结构指针变量中的值是所指向的结构变量的首地址。通过结构指针即可访问该结构变量,这与数组指针和函数指针的情况是相同的。结构指针变量说明的一般形式为:     struct  结构名  *结构指针变量名例如,在前面的例题中定义了stu这个结构,如要说明一个指向stu的指针变量pstu,可写为: &n...

memory   2014-04-21  暂无评论

6.C语言结构体数组的定义

数组的元素也可以是结构类型的。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生档案,一个车间职工的工资表等。方法和结构变量相似,只需说明它为数组类型即可。例如:struct stu{ int num; char *name; char sex; ...

memory   2014-04-21  暂无评论

5.C语言结构变量的初始化

和其他类型变量一样,对结构变量可以在定义时进行初始化赋值。【例11-2】对结构变量初始化。 main(){ struct stu{ /*定义结构*/ int num; char *name; char sex; float score; }boy2,boy1={102,"Zhang pi...

memory   2014-04-21  暂无评论

4.C语言结构变量的赋值

结构变量的赋值就是给各成员赋值。可用输入语句或赋值语句来完成。【例11-1】给结构变量赋值并输出其值。main(){ struct stu{ int num; char *name; char sex; float score; } boy1,boy2; boy1.num=102; ...

memory   2014-04-21  暂无评论

3.C语言结构变量成员的表示方法

在程序中使用结构变量时,往往不把它作为一个整体来使用。在ANSI C中除了允许具有相同类型的结构变量相互赋值以外,一般对结构变量的使用,包括赋值、输入、输出、运算等都是通过结构变量的成员来实现的。表示结构变量成员的一般形式是:     结构变量名.成员名例如:     boy1.num        即...

memory   2014-04-21  暂无评论

2.C语言结构类型变量的说明

说明结构变量有以下三种方法。以上面定义的stu为例来加以说明。1) 先定义结构,再说明结构变量。 如:struct stu{ int num; char name[20]; char sex; float score; }; struct stu boy1,boy2;说明了两个变量boy1和boy2为stu结构类型。也可以用宏定义使一个符号常量来表...

memory   2014-04-21  暂无评论

1.C语言结构体的定义

在实际问题中,一组数据往往具有不同的数据类型。例如,在学生登记表中,姓名应为字符型;学号可为整型或字符型;年龄应为整型;性别应为字符型;成绩可为整型或实型。显然不能用一个数组来存放这一组数据。因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构(structure)”或叫“结构体”。 它相当于其它高级语言中的记录。“结构”是...

memory   2014-04-21  暂无评论