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:56 阅读更多 →
Ubuntu 系统安装技巧:从零到流畅运行的完整指南

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

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

2026/9/26 4:04:56 阅读更多 →
别把旗舰模型当默认:给 AI 客服做置信度路由,便宜模型打头阵,token 成本砍掉九成(2026 实操版)

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

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

2026/9/26 4:04:56 阅读更多 →

最新新闻

前端调试必备:SourceMap原理、配置与实战排查指南

前端调试必备:SourceMap原理、配置与实战排查指南

1. 为什么前端调试离不开SourceMap 1.1 压缩混淆带来的“黑盒子” 大多数前端开发者在本地调试时都遇到过一种割裂感:开发环境中,写错一行代码,控制台的报错能精准定位到具体文件具体行号,配合Sources面板的断点,整个…

2026/9/26 4:50:21 阅读更多 →
强制删除顽固文件:句柄占用与权限限制的深度清理指南

强制删除顽固文件:句柄占用与权限限制的深度清理指南

相信你一定遇到过这样的场景:某个文件明明已经不再需要了,右键点了删除,Windows 却弹出一句"文件正在被另一个程序使用,无法删除";或者刚卸载完某款软件,安装目录里还躺着一堆顽固的残留文件&…

2026/9/26 4:50:21 阅读更多 →
Cookie、Session 与 Token 实战选型与故障排查

Cookie、Session 与 Token 实战选型与故障排查

1. 这不是概念背诵题,是每天都在写的登录逻辑 你写过登录功能吗?哪怕只是个学生作业、内部管理系统、或者自己搭的博客后台——只要用户要“记住我”“保持登录状态”,你就绕不开 Cookie、Session、Token 这三个词。它们不是教科书里并列出…

2026/9/26 4:50:21 阅读更多 →
SpringBoot2+Vue3构建高校汉服租赁网站全流程解析

SpringBoot2+Vue3构建高校汉服租赁网站全流程解析

做这个高校汉服租赁网站系统,我一开始其实没想太多,就是想把SpringBoot2、Vue3、MyBatis-Plus、MySQL8.0这一套技术栈完完整整地串起来。结果越做越发现,汉服租赁这个业务场景还挺有意思——它既有普通电商的选品、下单、支付流程&#xff0c…

2026/9/26 4:50:21 阅读更多 →
Windows顽固文件删不掉?占用句柄、权限与强制删除工具全解析

Windows顽固文件删不掉?占用句柄、权限与强制删除工具全解析

1. 删不掉的文件不是玄学,先搞懂占用、权限和属性1.1 Windows 的“占用锁”是怎么产生的你在 Windows 里删文件,最常撞见的提示就是“文件正在被另一个人或程序使用”。这话听起来像系统在跟你打哑谜,其实背后是一套非常直观的机制&#xff1…

2026/9/26 4:50:21 阅读更多 →
ES6迭代器与生成器实战:从原理到业务场景的完整拆解

ES6迭代器与生成器实战:从原理到业务场景的完整拆解

不少写了好几年 JavaScript 的朋友,一听到 ES6 里的迭代器和生成器,第一反应往往都是“面试八股,平时用不上”。但你要是真把业务代码里的数据遍历、分页加载、异步流程调度捋一遍,会发现这两个东西其实就是把“怎么取数据”这件事…

2026/9/26 4:49:21 阅读更多 →

日新闻

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

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

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

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →