9.4 用指针处理链表

9.4.1 什么是链表

它是动态地进行存储分配的一种结构。

链表中各元素在内存中的地址是不连续的。要找某一元素,必须先找到上一个元素,根据它提供的下一元素地址才能找到下一个元素。

如果不提供“头指针”,则整个链表无法访问。

9.4.2 建立简单的静态链表

head=&a;       //将结点a的起始地址赋给头指针head
a.next=&b;     //将结点b的起始地址赋给a结点的next成员
b.next=&c;     //将结点c的起始地址赋给a结点的next成员
c.next=NULL;   //c结点的next成员不存放其他结点地址
p=head;         //使p指向a结点

9.4.3 建立动态链表

所谓建立动态链表是指在程序执行过程中从无到有建立起一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。

9.5 共用体类型

9.5.1 什么是共用体类型

有时想用同一段内存单元存放不同类型的变量。

定义共用体类型变量的一般形式为:

union 共用体名

{成员表列}变量表列;

例如:

union       //没有定义共用体类型名
{
    int i;
    char ch;
    float f;
}a,b,c;

9.5.2 引用共用体变量的方式

只有先定义了共用体变量才能引用它,但是不能引用共用体变量,而只能引用共用体变量中的成员。

不能只引用共用体变量,例如下面这样是错误的:

printf("%d",a);

应该写成:

printf("%d",a.i);

9.5.3 共用体类型数据的特点

在使用共用体类型数据时要注意以下一些特点:

(1)同一内存段可以用来存放几种不同类型的成员,但在每一瞬间只能存放其中一个成员,而不是同时存放几个。

(2)可以对共用体变量初始化,但初始化表中只能有一个常量。

(3)共用体变量中起作用的成员是最后一次被赋值的成员,原有变量存储单元中的值就被取代。

(4)共用体变量的地址和它的各成员的地址都是同一地址。

(5)不能对共用体变量名赋值,也不能企图引用变量名来得到一个值。

(6)C99允许用共用体变量作为函数参数。

(7)共用体类型可以出现在结构体类型定义中,也可以定义共用体数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯西极限存在准则

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值