发布时间:2026/8/11 22:33:01
认识数组(C语言) //定义数组 //一种自定义类型可以存储大量数据便于一次调用多个变量 //形式 //type arr_name[]; //由type数组元素类型arr_name(数组名以及[]规定数组大小三部分组成 //数组类型 //对于一个变量来说去掉其变量名就是它的类型 //比如对于char name[10]而言“char [10]就是它的类型 //数组初始化 //在了解数组初始化之前我们得了解数组中的元素是怎么调用的 //数组中的每个元素都有”下标“与之对应这就像数组元素的身份证一样 //举例int arr[10]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 其下标分布如下0 1 2 3 4 5 6 7 8 9 //所以如果你想调用元素”6“ //你就得输入arr[5]来使用它当然也有其他调用它的方法 //注意当字符串填入字符数组时会带着\0’一起成为数组元素 //完全初始化 //你可以理解为数学上的一一映射初始化用{}大括号 //比如我有一个数组int arr[5],如果我要初始化这个数组就得找5个int 类型的常量把它们用大括号连起来 //比如:int arr[5]{1,2,3,4,5}; //这样的话元素arr[0]-arr[4]就被赋予了相应的值 //也有一种书是化的方式是省略[]中的数字直接初始化这样数组元素的大小完全由初始化的元素个数决定 //字符串的初始化 eg;char arrHello World!; //不完全初始化 // 顾名思义就是少填了几个 //但是值得注意的一点就是剩下没被初始化的元素会默认初始化为0 //所以我们对数组常见的初始化为int arr[10]{0}; //数组的有关操作 //打印 //数组输入输出的思路都是把数组元素一个一个的调用出来实现的 //eg: //#includestdio.h // //int main() { // int arr[] {1,2,3,4,5,6,7,8,9}; // for (int i 0; i 9; i) { // printf(%d , arr[i]); // } // printf(\n); // return 0; //} //输出1 2 3 4 5 6 7 8 9 //输入 //eg: //#includestdio.h // //int main() { // int arr[5] { 0 }; // for (int i 0; i 5; i) { // scanf(%d, arr[i]); // } // for (int i 0; i 5; i) { // printf(%d , arr[i]); // } // printf(\n); // // return 0; //} //输入1 2 3 4 5 // 输出 1 2 3 4 5 // //一维数组在内存中的存储 //举个例 //#includestdio.h // //int main() { // // int arr[5] { 0 }; // for (int i 0; i 5; i) { // printf(arr[%d]%p\n, i, arr[i]);//%p用来打印地址 // } // // return 0; //} // 输出 //arr[0] 000000B2AC0FFC18 //arr[1] 000000B2AC0FFC1C //arr[2] 000000B2AC0FFC20 //arr[3] 000000B2AC0FFC24 //arr[4] 000000B2AC0FFC28 //由此可见一维数组在内存中的存储时连续的 //数组元素个数的计算 //当我们想对数组中的每个元素都进行操作时就要生成其所有的下标而生成下标又要循环所以数组的元素个数就是循环次数 //虽然当我们定义数组是就知道数组的大小但当我们更改数组是就会连带着与数组大小有关的计算都要改变如果每一个都要人为去更改就很麻烦所以我们就想去寻找求数组元素个数的方法 //数组是由数组元素组成的数组元素的大小是固定的所以数组的大小等于元素数乘以一个数组元素的大小 //所以我们只要求数组的大小在用它除以一个数组元素的大小就可以得到数组元素的个数 //之前我们说过数组算是一种自定义类型是变量类型的一种那么我们就可一尝试用sizeof 来求数组的大小 //#includestdio.h // //int main() { // int arr[10] { 0 }; // printf(%zu\n, sizeof(arr)); // // return 0; //} //发现输出上显示的是40 //说明int arr[10]这个数组的大小是40字节 //我们知道一个int 类型的变量的大小是4字节 //用40数以4我们就得到了10 //我们还可以更简洁一点或更公式一点的做法 //比如size_t numsizeof(arr)/sizeof(arr[0]); //这样我们就求出了一个数组的元素个数 //多维数组 //这个概念类似于套娃 //把低一维的数组作为数组元素就成了多维数组 //二维数组 //所以二维数组就把一维数组当成数组元素的数组 //形式为 type arr_name[][]; //其中第一个[]表示行第二个[]表示列 //这样表示我个人感觉有点不好记忆 //所以我的理解是第一个[]是用来规定数组元素个数的第二个[]是用来规定每个元素的大小的 //这样理解有什么好处呢 //在后面会说到二维数组可以省略行但不能省略列有一定的帮助 //因为你若把二位数组理解成一种自定义类型的话最重要的就是定义其单个的大小 //因为数组本质上算一种集合单个元素的大小才是基础 //二维数组的存储 //我们依旧先写一个代码来演示一下 //#includestdio.h // //int main() { // int arr[2][3] {1,2,3,4,5,6}; // for (int i 0; i 2; i)//生成行下标 // { // for (int j 0; j 3; j)//生成列下标 // { // printf(arr[%d][%d]%p\n, i, j, arr[i][j]); // } // } // // return 0; //} // 输出 //arr[0][0] 000000D6276FF6E8 //arr[0][1] 000000D6276FF6EC //arr[0][2] 000000D6276FF6F0 //arr[1][0] 000000D6276FF6F4 //arr[1][1] 000000D6276FF6F8 //arr[1][2] 000000D6276FF6FC //不难发现二维数组在内存中的存储也是连续所谓分行分列更像是一种分“区块”管理 //二维数组的初始化 //有了上面对二维数组在内存中的存储对于其初始化也很容以上手了 //初始化的思路是一行一行的填满这一行填满自动填向下一行 //完全与不完全的区别就是不完全初始化会把剩下元素自动初始化为0、 //按行初始化 //这个比较特殊吧 //就是你手动初始化时可以不用把一行填满就去填下一行 //依旧写一行举个例 //#includestdio.h // //int main() { // // int arr[3][3] { {1},{2,2},{3,3,3} }; // // for (int i 0; i 3; i) { // for (int j 0; j 3; j) { // printf(%d , arr[i][j]); // } // printf(\n); // } // // return 0; //} // 输出 //1 0 0 //2 2 0 //3 3 3 //这样应该很明确了吧 //二维数组的输入输出 //跟一维数组差不多只不过要嵌套循环来生成对应的行下标和列下标 //依旧举个例子: //#includestdio.h // //int main() { // // int arr[3][3] { 0 }; // // for (int i 0; i 3; i) { // for (int j 0; j 3; j) { // scanf(%d, arr[i][j]); // } // } // for (int i 0; i 3; i) { // for (int j 0; j 3; j) { // printf(%d , arr[i][j]); // } // printf(\n); // } // // return 0; //} //输入 //1 2 3 //2 3 1 //3 1 2 //输出 //1 2 3 //2 3 1 //3 1 2 //变长数组 //全名应该叫变量长度的数组就是填入[]的可以不是常数可以是变量 //c99后新加的语法 //但是我用的是vs //vs不支持VLA所以我就不演示了 //一个小练习 //打印一串字符串但是要有动画感 //ps:把字符串存入字符数组时打印时可以直接通过数组名来打印 //举个例 #includestdio.h #includestring.h #includewindows.h int main() { char arr1[] welcome to VCTCN!!!!; char arr2[] ********************; size_t left 0; size_t right strlen(arr1) - 1; while (left right) { arr2[left] arr1[left]; arr2[right] arr1[right--]; printf(%s, arr2); Sleep(500); system(cls); } return 0; }

相关新闻

2026/8/11 22:33:01

2026年中央供料设备选购指南,靠谱渠道这样找

行业痛点分析当前中央供料设备领域面临显著的技术升级挑战。传统开放式供料系统长期存在原料粉尘扩散、配比精度不足、有害气体挥发等问题,尤其在汽车内饰地毯等对洁净度要求严苛的生产场景中,这些问题直接导致产品不良率上升与环保合规风险。据行业调研…

2026/8/11 22:33:01

高效单位固定资产管理系统,从此账目永远清晰不再混乱

“账实不符、家底不清”,这八个字几乎是很多单位资产管理者的心头刺。大到机关单位、医院学校,小到集团公司,每年年终盘点时,面对堆积如山的Excel表格和参差不齐的台账数据,财务部门和后勤部门往往焦头烂额。固定资产管…

2026/8/11 22:33:01

沉浸式翻译:终极双语网页翻译扩展完整指南

沉浸式翻译:终极双语网页翻译扩展完整指南 【免费下载链接】immersive-translate 沉浸式双语网页翻译扩展 , 支持输入框翻译, 鼠标悬停翻译, PDF, Epub, 字幕文件, TXT 文件翻译 - Immersive Dual Web Page Translation Extension 项目地址…

2026/8/11 23:18:03

Windows原地升级助手:轻松实现系统版本自由切换

Windows原地升级助手:轻松实现系统版本自由切换 【免费下载链接】In-Place_Upgrade_Helper Helper-Tool for Windows 10/11/Server In-Place-upgrades and changing between Windows Editions 项目地址: https://gitcode.com/GitHub_Trending/in/In-Place_Upgrade…

2026/8/11 23:18:03

昇腾AI智能体自动管理安卓应用

针对昇腾Model-Agent模型适配大赛第二季中,基于昇腾(Ascend)与AtomGit AI技术实现安卓手机应用的自动化删除与安装任务,其核心在于构建一个具备环境感知、决策规划和自动化执行能力的智能体(Agent)。该Agen…

2026/8/11 23:18:03

如何在5分钟内搭建免费Web POS系统:NexoPOS完整实战指南

如何在5分钟内搭建免费Web POS系统:NexoPOS完整实战指南 【免费下载链接】NexoPOS Laravel-based web POS system with Vue.js, Tailwind CSS, inventory management, sales processing, customer records, reports, and modular extension support. 项目地址: ht…

2026/8/11 3:03:40

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 5:34:14

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/11 0:00:39

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:39

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/10 11:20:30

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/11 17:06:59

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/11 3:05:11

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…