首页/新闻资讯/正文详情

C语言学习--回顾(06)

发布时间:2026/9/26 4:04:53 来源:云帆数科 栏目:资讯中心
C语言学习--回顾(06)
第六篇目录第六篇3.数组3.1一维数组3.数组3.1一维数组3.1.1一维数组的创建与初始化a例如int arr1[20];表示创建了名为arr1的数组里面有20个元素a初始化可能遇到的情况b就个人习惯来说使用 arr[ ]初始化数组是最好的选择3.1.2字符串与字符数组a)通过监视功能可以查看数组中各元素的情况b可以发现第一种初始化方式在数组末尾会有\0字符作为终止标志他们之间的差别可以在sizeof与strlen之中体现如下3.1.3 sizeof与strlen的对比a在以上案例中 strlen能够直接识别 ‘ \0’ 前面所有的字符个数sizeof则是返回arr[10]在内存中开辟的10字节的空间也就是也将填充的 ‘\0’ 所占内存也一起算进去了b不难察觉如果数组中间本身包含一个 ‘\0’ 那么统计会提前终止c同时也会引发其他问题在没有 ‘\0’ 的时候strlen如何停止d可见会直接读到数组之外直到正好在数组之外遇到 ‘\0 才会停止3.1.4数组类型3.1.5一维数组的使用3.1.5.1数组下标a通过使用 [ ] 可以实现对数组的修改遍历查看等功能例如int arr1[10]{1,2,3,4,5,6,7,8,9,10};int arr[3]33;printf(第3个元素%darr[2]);3.1.5.2数组遍历a当遍历的数据范围超过了数组范围就会造成越界访问3.1.5.3给数组输入内容3.1.5.4 sizeof计算数组元素个数a例如以下b求数组元素个数采用数组内存大小/单个元素内存大小的出常用于for循环3.1.5.5一维数组在内存中的存储如图a通过对数组元素取地址的方式可以得出数组元素的存储位置b不难发现数组元素在内存中的存储是连续的相差4个字节c地址存储为16进制存储十六进制的数有123456789a(10),b(11).c(12),d(13),e(14),f(15);3.1.5.6一维数组练习a分析结合一维数组的性质我们可以在两个数组中分别存放想要打印的内容通过循环的方式将#数组中前与后的元素依次替换为想要得到的数组并打印每次变化后的结果就可实现具体如下b其中涉及1Sleep用于暂停程序的执行2system(cls);用于清屏可以将输出的内容全部清空需使用windows.h头文件3.1.5.7二分法查找例如在一个数组中查找一个元素是否在这个数组之中大部分情况使用遍历逐个查询但是对于升序/降序这种数组可以使用二分法查找比如代码实现a解析设置左右标志right和left,每进行一次查找都会取一个中间值当大于查找值时将中间值作为最大值后继续前面的操作小于时同理直到左右及中间值等于该查找值时进行打印输出没查到即输出没查到b这个做法的好处是能够节约遍历成本每次遍历的长度减少一半c局限是只能用于升降序数组但是可以先利用方法将数组排序再使用此方法但排序的时候已经可以完成查找的所以该方法不常用

相关推荐

CMake 入门:从单文件到多目标工程
CMake 入门:从单文件到多目标工程

一个 .cpp 文件时,g main.cpp -o app 就够了;等到工程变成「一个静态库 两个可执行文件 一套测试 一个第三方依赖」,手写编译命令就会迅速失控——你开始记不住该编哪些文件、按什么顺序链、哪些 -I 路径给谁。构建系统要解决的就是这件事… · 2026/9/26 4:04:53

Ubuntu 系统安装技巧:从零到流畅运行的完整指南
Ubuntu 系统安装技巧:从零到流畅运行的完整指南

1. 引言 Ubuntu 是目前最流行的 Linux 发行版之一,凭借其稳定性、丰富的软件生态和友好的社区支持,成为众多开发者、服务器管理员和普通用户的首选。然而,对于初次接触 Ubuntu 的用户来说,安装过程可能会遇到各种问题——分区不会… · 2026/9/26 4:04:53

别把旗舰模型当默认:给 AI 客服做置信度路由,便宜模型打头阵,token 成本砍掉九成(2026 实操版)
别把旗舰模型当默认:给 AI 客服做置信度路由,便宜模型打头阵,token 成本砍掉九成(2026 实操版)

去年给一个电商客服项目做模型选型复盘,我把上一个月的调用账单拉出来,盯着那个数字看了很久:日均四五千条消息的客服机器人,不到三十天,光模型调用就烧掉两千三百多块。这还没算向量检索、日志存储这些周边开销&#… · 2026/9/26 4:04:53

IP地址与MAC地址详解:从ip addr命令到ARP排障实战
IP地址与MAC地址详解:从ip addr命令到ARP排障实战

搞网络的人基本都绕不开三件事:IP协议、地址划分、MAC地址。再加一条ip addr命令,基本就是每天都要碰的东西。很多人一开始都搞不清IP地址和MAC地址的区别,一直到在模拟器里抓包看到ARP报文,才算真正想明白。这篇文章我就从这三个… · 2026/9/26 4:45:14

从零开始参与开源项目:贡献路径、选型与长期积累指南
从零开始参与开源项目:贡献路径、选型与长期积累指南

我在GitHub上泡了几年,经历过从“只敢看看README”到“合入第一个PR”,再到后来长期参与几个项目维护的过程。刚接触开源贡献时,我翻了一整晚热门仓库,满脑子只有一个困惑:这些大型项目代码那么多,我这点水… · 2026/9/26 4:45:14

JVM故障排查实战:内存溢出分析与死锁检测全流程指南
JVM故障排查实战:内存溢出分析与死锁检测全流程指南

线上JVM告警响起来的那一刻,多半是深夜。登录、看监控、抓线程栈、拉GC日志、下一份堆转储……这一套动作能不能在十分钟内做完,决定了你是把故障控制在五分钟内,还是熬到天亮。内存溢出和死锁检测,就是JVM故障排查里最经典的两个… · 2026/9/26 4:45:14

ADC驱动开发全解析:从裸机寄存器到Linux设备树与IIO框架
ADC驱动开发全解析:从裸机寄存器到Linux设备树与IIO框架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 4:45:14

Java数据库编程实战:JDBC、连接池、事务与SQL优化
Java数据库编程实战:JDBC、连接池、事务与SQL优化

我的Java数据库实战笔记最近后台有不少朋友私信我,问的都是同一个问题:Java后端到底要怎么系统地学数据库?从基础的JDBC操作,到连接池怎么配,再到分库分表和读写分离,中间隔着一大段模糊地带。我自己从刚开… · 2026/9/26 4:45:14

Kettle Web版部署实战:环境配置、转换执行与避坑指南
Kettle Web版部署实战:环境配置、转换执行与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 4:45:08

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码