原标题:科技热点 || C语言课堂之结构体
C语言课堂
之
结构体
结构体是C语言的学习中的进阶版,它的学习有时会比前面的基础知识难度大一点。小编决定分两次给大家讲解总结结构体的有关内容。
首先,结构体是指C语言中允许用户自己建立由不同类型数据组成的组合型的数据结构。下面具体讲解一些结构体小知识。
一、定义和使用结构体变量
1、自己建立结构体类型
(1)一般形式
struct 结构体名
{成员表列};
(2)结构体类型的名字是由一个关键字struct和结构体名组成而成的。结构体名用来和其他结构体类型做区别。
(3)花括号内是该结构体所包括的子项,称为结构体的成员。
(4)对各个成员都应该进行类型声明,即:类型名 成员名。
(5)成员命名规则与变量名相同。
2、定义结构体类型变量
(1)先声明结构体类型,再定义该类型的变量
①在定义了结构体变量后,系统会为之分配内存单元。
②这种声明方式是声明类型和定义变量分离,在声明类型后可以随时定义变量,比较灵活。
(2)在声明类型的同时定义变量
①一般形式
struct 结构体名
{
成员表列
}变量名表列;
②声明类型和定义变量放在一起进行,能直接看到结构体的结构,比较直观。
(3)不指定类型名而直接定义结构体类型变量
①一般形式
struct
{
成员表列
}变量名表列;
②指定了一个无名的结构体类型,它没有名字。显然不能再以此结构体类型去定义其他变量。
(4) 结构体类型中的成员名可以与程序中的变量名相同,但二者不代表同一对象。
3、结构体变量的初始化和引用
(1)在定义结构体变量时可以对它的成员初始化。
(2)可以引用结构体变量中成员的值,引用方式为:结构体变量名.成员名. (“.”是成员运算符,它在所有的运算符中优先级最高。)。
(3)如果成员本身又属于一个结构体类型,则要用若干个成员运算符,逐级地找到最低的一级的成员。
(4)对结构体变量的成员可以像普通变量一样进行各种运算。同类的结构体变量可以互相赋值。
(5)可以引用结构体变量的成员的地址,也可以引用结构体变量的地址。结构体变量的地址主要用作函数参数,传递结构体变量的地址。
二、使用结构体数组
1、定义结构体数组
(1)一个结构体变量中可以存放一组有关联的数据。
(2)结构体数组与之前介绍的数值型数组的不同之处在于每个数组元素都是一个结构体类型的数据。
(3)定义结构体数组一般形式
①struct 结构体名
{成员表列}数组名[数组长度];
②先声明一个结构体类型(如struct YTUstudents),然后再用此类型定义结构体数组:结构体类型 数组名[数组长度];
(4)对结构体数组初始化的形式是在定义数组的后面加上:={初值表列};
三、结构体指针
1、指向结构体变量的指针
(1)指向结构体对象的指针变量既可以指向结构体变量,也可指向结构体数组中的元素。
(2)允许把(*p).num用p->num来代替,“->”代表一个箭头,p->num表示p所指向的结构体变量中的num成员。
2、指向结构体数组的指针
(1)(++p)->num,先使p自加1,然后得到p指向的元素中的num成员值。
(2)(p++)->num,先求的p->num的值,然后再使p自加1。
3、用结构体变量和结构体变量的指针作函数参数
(1)用结构体变量的成员作参数。用法和用普通变量作实参是一样的,属于“值传递”方式。应当注意实参与形参的类型保持一致。
(2)用结构体变量作实参。用结构体变量作实参时,采取的也是“值传递”的方式,将结构体变量所占的内存单元的内容全部按顺序传递给形参,形参也必须是同类型的结构体变量。
今天的C语言课堂之结构体到这里就结束了。
C语言的路还很长,要在上课的时候认真听讲,下课积极的敲程序,掌握C语言指日可待。
编辑/ 李堰波
图文/ 光电科技协会
责任编辑: