当前位置: 首页 > news >正文

9.4 【C语言】用指针处理链表

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)共用体类型可以出现在结构体类型定义中,也可以定义共用体数组。

http://www.lryc.cn/news/143705.html

相关文章:

  • 后端面试话术集锦第四篇:rabbitmq面试话术
  • Linux目录结构与文件管理(01) (三)
  • OpenCV为老照片,黑白照片增加色彩
  • HTML之VSCode简单配置与创建
  • 2023亿发一体化新零售POS收银解决方案,打造连锁门店经营新未来
  • Android ---使用Jenkins 打包release版本不能安装或者安装后不显示APP
  • 【Spring】什么是 AOP(面向切面编程) ? 为什么要有 AOP ? 如何实现 Spring AOP ?
  • 11.并发:自旋锁
  • 使用EF Core更新与修改生产数据库
  • 法律小程序开发:让法律咨询更便捷
  • 【C++多线程】C++11互斥锁和条件变量实现生产者消费者模型
  • Webpack迁移Vite采坑指南
  • 设计模式-职责链模式
  • CMake学习笔记-VSCode使用Cmake编译C++工程
  • redis相关
  • 【VRTK4.0运动专题】轴移动AxisMove(真实身体的移动)
  • 【vue2-helper插件】提供Mixins和组件库相关的类型提示、智能补全、跳转等功能~
  • 论文解读 | ScanNet:室内场景的丰富注释3D重建
  • 手写数字识别之网络结构
  • 《动手深度学习》 线性回归从零开始实现实例
  • Redis 命令
  • Linux网络编程:线程池并发服务器 _UDP客户端和服务器_本地和网络套接字
  • nvm安装electron开发与编译环境
  • 玩转Mysql系列 - 第7篇:玩转select条件查询,避免采坑
  • 启动程序结束程序打开指定网页
  • 从零开始学习 Java:简单易懂的入门指南之包装类(十九)
  • leetcode分类刷题:哈希表(Hash Table)(一、数组交集问题)
  • UML四大关系
  • forms组件(钩子函数(局部钩子、全局钩子)、三种页面的渲染方式、数据校验的使用)、form组件的参数以及单选多选形式
  • 跨专业申请成功|金融公司经理赴美国密苏里大学访学交流