C语言:(5.初级数组)
一、什么是数组数组是一组相同类型元素构成的集合。Type Name[Size];组成部分含义示例Type每个元素的类型int, char, doubleName数组的名字arr, brrSize元素个数10, 20数组的每一个成员Name[0]到Name[Size-1]计算机中所有序号从0开始int arr[5]; printf(%d\n, sizeof(arr)); // 205个int × 4字节二、数组的分类分类语法说明内存大小假设int 4字节一维数组int arr[10]10个int40字节二维数组int arr[3][4]3个int[4]48字节三维数组int arr[2][3][4]2个int[3][4]96字节一维数组内存布局起始地址1000成员字节范围地址arr[0]1-41000-1003arr[1]5-81004-1007arr[2]9-121008-1011arr[3]13-161012-1015arr[4]17-201016-1019三、数组的三种初始化1.初始化一直接定义并初始化int arr[5] {1, 2, 3, 4, 5}; int arr2[] {1, 2, 3, 4, 5}; // Size可以省略 int arr3[10] {1, 2, 3}; // 后面7个自动补0 int arr4[10] {}; // 全部为02.初始化二先定义后赋值int brr[5]; brr[0] 1; brr[1] 2; brr[2] 3; brr[3] 4; brr[4] 5;// 循环赋值 int crr[5]; for (int i 0; i 5; i) { crr[i] i 1; }注意这种初始化方式Size不可以省略3.初始化三从键盘获取int drr[5]; printf(请输入5个整数); for (int i 0; i 5; i) { scanf(%d, drr[i]); }注意Size也不可以省略四、二维数组二维数组是“由一组相同的数组类型构成的集合”。内存布局行优先存储arr[0][0] arr[0][1] arr[0][2] arr[0][3] arr[1][0] arr[1][1] ... 1 2 3 4 5 6 ...二维数组的三种初始化// 初始化一 int arr[3][4] { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; // 初始化二 int brr[3][4]; int temp 1; for (int i 0; i 3; i) { for (int j 0; j 4; j) { brr[i][j] temp; } } // 初始化三 int crr[3][4]; for (int i 0; i 3; i) { for (int j 0; j 4; j) { scanf(%d, crr[i][j]); } }五、三维数组三维数组是“由一组相同的二维数组类型构成的集合”。int arr[2][3][4] { { // 第一组二维数组 {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }, { // 第二组二维数组 {13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24} } };三维数组遍历for (int i 0; i 2; i) { for (int j 0; j 3; j) { for (int k 0; k 4; k) { printf(%d , arr[i][j][k]); } printf(\n); } printf(\n); }六、数组长度公式// 一维数组长度 int len1 sizeof(arr) / sizeof(arr[0]); // 二维数组行数和列数 int rows sizeof(brr) / sizeof(brr[0]); int cols sizeof(brr[0]) / sizeof(brr[0][0]); // 三维数组各维度长度 int d1 sizeof(arr) / sizeof(arr[0]); int d2 sizeof(arr[0]) / sizeof(arr[0][0]); int d3 sizeof(arr[0][0]) / sizeof(arr[0][0][0]);七、数组名面试必考int arr[10] {0}; printf(%d\n, sizeof(arr)); // 40 - 整个数组的大小 printf(%p\n, arr); // 整个数组的地址 printf(%p\n, arr); // 首元素的地址 printf(%p\n, arr 1); // 首元素地址 4 printf(%p\n, arr 1); // 整个数组地址 40数组名的三种身份情况含义类型sizeof(数组名)整个数组的大小Type [Size]数组名整个数组的地址Type(*) [Size]其他情况首元素的地址Type*int main() { int arr[10] {0}; printf(%p %p\n, arr, arr 1); // 差4字节int* printf(%p %p\n, arr, arr 1); // 差40字节整个数组 printf(%d %d\n, sizeof(arr), sizeof(arr)); // 40 和 4 return 0; }八、常用数组操作1. 求和int sum 0; for (int i 0; i len; i) { sum arr[i]; }2. 最大值擂台法int max arr[0]; for (int i 1; i len; i) { if (arr[i] max) { max arr[i]; } }3. 最小值int min arr[0]; for (int i 1; i len; i) { if (arr[i] min) { min arr[i]; } }4. 平均值double avg (double)sum / len;5. 冒泡排序void BubbleSort(int arr[], int len) { for (int i 0; i len - 1; i) { for (int j 0; j len - i - 1; j) { if (arr[j] arr[j 1]) { int temp arr[j]; arr[j] arr[j 1]; arr[j 1] temp; } } } }九、面试考点与避坑指南考点1数组名与指针的区别int arr[10]; int *p arr; sizeof(arr); // 40 sizeof(p); // 4指针大小考点2二维数组的指针类型int arr[3][4]; // arr的类型是 int(*)[4]指向有4个int的数组的指针 // arr 1 跳过了 4个int 16字节考点3数组作为函数参数会退化void func(int arr[10]) { printf(%d\n, sizeof(arr)); // 4不是40 } // 因为数组参数退化为指针int arr[] 等价于 int *arr正确做法同时传递长度void func(int arr[], int len) { for (int i 0; i len; i) { printf(%d , arr[i]); } }考点4常见错误//数组不能整体赋值 int arr1[5] {1, 2, 3, 4, 5}; int arr2[5]; arr2 arr1; // 错误 //用循环或memcpy for (int i 0; i 5; i) { arr2[i] arr1[i]; }总结知识点要点数组初始化三种方式Size可省略的情况数组名sizeof和时是整体其他情况是首元素地址二维数组行优先存储arr[i][j]*(*(arri)j)数组传参会退化为指针需要额外传长度常见坑数组不能整体赋值不能返回局部数组

相关新闻

终极PC分屏游戏解决方案:一台电脑实现多人本地协作的革命

终极PC分屏游戏解决方案:一台电脑实现多人本地协作的革命

终极PC分屏游戏解决方案:一台电脑实现多人本地协作的革命 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 你是否曾梦想与朋友在同一台电…

2026/10/9 2:50:29 阅读更多 →
终极指南:3步解锁VMware的macOS支持 - 免费macOS虚拟机解决方案

终极指南:3步解锁VMware的macOS支持 - 免费macOS虚拟机解决方案

终极指南:3步解锁VMware的macOS支持 - 免费macOS虚拟机解决方案 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/un/unlocker macOS Unlocker是一款革命性的开源工具,专为VMware虚拟机用户设计&a…

2026/10/9 14:13:01 阅读更多 →
微信数据库解密终极指南:3分钟学会本地安全恢复聊天记录

微信数据库解密终极指南:3分钟学会本地安全恢复聊天记录

微信数据库解密终极指南:3分钟学会本地安全恢复聊天记录 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 你是否曾经因为手机损坏、误删微信聊天记录而懊恼不已?那些珍贵的对话、重…

2026/10/10 19:31:43 阅读更多 →

最新新闻

开源大模型私有化部署实战:算力底座、显存规划与推理框架选型

开源大模型私有化部署实战:算力底座、显存规划与推理框架选型

开源模型私有化部署从来不是一件“装个软件就能跑”的事。我接手过不少内部演示和实验项目,最深的体会是:模型本身的参数再漂亮,落到自己的机器上、接到业务流程里,才是真正见功夫的地方。这段时间圈子里对开源模型的讨论很多&…

2026/10/12 6:44:55 阅读更多 →
OpenHarmony上React Native SectionList吸顶分组标题实战与排错

OpenHarmony上React Native SectionList吸顶分组标题实战与排错

前阵子接了个活,把团队里一套跑在移动端的 React Native 页面搬到 OpenHarmony 设备上。页面本身不难,难的是其中好几个页面都是长列表,而且列表带分组,分组标题还要吸顶。通讯录那种按首字母分组的界面,滚动时字母标题…

2026/10/12 6:44:55 阅读更多 →
知识工作插件组合实战:从编辑器选型到自动化工作流

知识工作插件组合实战:从编辑器选型到自动化工作流

你打开电脑,准备开始一天的工作:写文档、整理笔记、处理数据、回复消息……真正开始动手前,先花了20分钟在两三个软件之间来回切换,把上周末散落在各处的想法、截图、片段找回来,理清它们之间的关系,再重新…

2026/10/12 6:44:55 阅读更多 →
VPS+OpenClaw构建AI股票追踪器:部署实战与调优

VPS+OpenClaw构建AI股票追踪器:部署实战与调优

如果你已经有一台VPS,也想过“能不能让AI帮我盯着股票”,那OpenClaw这个开源AI代理框架值得你花几分钟试一下。我最近就在一台闲置VPS上把OpenClaw跑了起来,给它配了一个股票追踪器,让它定时拉行情、做技术面分析、触发异动提醒。…

2026/10/12 6:44:55 阅读更多 →
AGUI协议与流式渲染:Agent驱动的前端新范式

AGUI协议与流式渲染:Agent驱动的前端新范式

1. 这不是“又一个流式接口”,而是前端渲染范式的悄然迁移最近在某跨平台系统重构中,我遇到一个典型场景:用户点击“生成报告”按钮后,后端需要调用多个微服务、聚合异构数据、执行轻量级推理,最终返回一份含图表、摘要…

2026/10/12 6:44:55 阅读更多 →
大模型Prompt工程实战:从指令设计到生产部署的系统方法论

大模型Prompt工程实战:从指令设计到生产部署的系统方法论

1. 为什么值得花时间啃透这份实验手册大模型应用开发这件事,真正上手之后你会发现,模型本身的能力其实只是地基,决定最终效果的天花板往往在于你怎么跟它说话。Prompt 工程这个词听起来有点玄乎,但说白了就是一套“如何把需求翻译…

2026/10/12 6:43:54 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/11 14:36:54 阅读更多 →