结构体类型

一:结构体定义

1.C语言允许用户自己建立由不同类型的数据组成的组合型数据结构,它称为结构体

2.一般形式:

struct 结构体名

{成员列表};

(1)struct是声明结构体类型时所必须使用的关键字

(2)大括号内是结构体所包含的子项,称为结构体成员,对各成员都应进行类型声明,即类型名 成员名;

3.先声明结构体类型,再定义该类型的变量

例:struct student(结构体类型名)student1 student2(结构体变量名)

这种方式是声明类型和定义变量分离,在声明类型后可以随时定义变量,比较灵活

4.在声明类型的同时定义变量,一般形式:

struct 结构体名

{

   成员表列

}变量名表列;

 

二:引用结构体变量

1.可以引用结构体变量中成员的值

例:结构体变量.成员名

在程序中可以对变量的成员赋值

例:student1.num=10010

(1)“.”是成员运算符,它在所有的运算符中优先级最高,因此可以把student1.num作为一个整体来看待

(2)不能通过结构体变量名来得到结构体变量中所有成员的值,只能对结构体变量中的各个成员分别进行输入和输出

2.如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最低一级的成员。只能对最低级的成员进行赋值或存取以及运算

3.对结构体变量的成员可以像普通变量一样进行各种运算

4.可以引用结构体变量成员的地址,也可以引用结构体变量的地址,结构体变量的地址主要用作函数参数,传递结构体变量的地址

 

三:结构体数组

1.定义结构体数组的一般形式:

(1)struct 结构名

{成员列表}数组名[数组长度];

(2)先声明一个结构体类型,然后再用此类型定义结构体数组

结构体类型 数组名[数组长度];

2.对结构体数组初始化的形式是在定义数组的后面加上“={初值表列};”

 

四:结构体指针

所谓结构体指针就是指向结构体数据的指针,一个结构体变量的起始地址就是这个结构体变量的指针。如果把一个结构体变量的起始地址存放在一个指针变量中,那么这个指针变量就指向该结构体变量。指针变量既可以指向结构体变量,也可以用来指向结构体数组中的元素。但是指针变量的基类型必须与结构体变量的类型相同

 

五:线性链表

1.线性链表就是动态地进行储存分配的一种数据结构。动态的数据结构,没有固定的大小,根据需要随时开辟存储单元,在用完后可以随时释放存储单元

2.链表有一个“头指针”变量,它存放一个地址,该地址指向链表中的一个元素。 链表中的元素称为“结点”, 每个结点都应包括两个部分:用户需要用的实际数据和下一个结点的地址。

3.链表中各结点在内存中的地址可以是不连续的。要找某一结点,必须先找到上一个结点,根据它提供的下一结点地址才能找到下一个结点。如果不提供“头指针” ,则整个链表都无法访问。

4.链表这种数据结构,必须利用结构体变量和指针变量才能实现。

 

六:共用体类型

1.将几种不同类型的变量存放到同一段内存单元中,一般形式:

union 共用体名

{成员表列

}变量表列;

2.结构体变量所占内存长度是各个成员占内存长度之和。每个成员分别占有其自己的内存单元。而共用体变量所占的内存长度等于最长的成员的长度

3.不能引用共用体变量,而只能引用共用体变量中的成员

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值