2.C语言--数组
📅 2026/7/13 1:31:20
👁️ 次浏览
一、数组基本概念数组是多个相同类型元素的集合可以一次性创建多个同类型变量统一管理批量数据属于自定义类型。二、一维数组的创建方式语法格式:数据类型 数组名【常量表达式】intarr[10];[] 内必须是整型常量代表数组元素个数VS 不支持变长数组C99标准支持变长数组变量做数组长度三、数组访问方式通过 下标索引 访问下标从 0 开始 0、1、2、3…示例arr[2]5;[ ] 是双目操作符四、数组初始化规则完全初始化指定长度所有元素全部赋值或省略长度由编译器自动推导intarr1[5]{1,2,3,4,5};intarr2[]{10,20,30,40};不完全初始化初始化值数量少于数组长度未初始化元素默认置 0整型默认 0字符型默认 \0浮点型默认 0.000000intarr[5]{1,2};//剩余三个自动为0清零初始化intarr[10]{0};字符数组特殊规则{} 逐个字符初始化 不会自动补 \0“” 字符串初始化 末尾自动补 \0五、字符数组与字符串区别字符数组单纯存放字符无结束标志字符串以 \0 作为结束标志的字符数组sizeof 与 strlen 区别sizeof 计算数组总字节数包含 \0strlen 计算有效字符长度遇到\0停止、不包含\0使用 strlen 需要头文件 #includestring.h示例对比chararr[]{a,b,c,d,e,\0};//sizeof6chararr1[]abcdef;//sizeof7strlen6六、数组长度计算公式数组总字节数 ÷ 单个元素字节数 元素个数intsizesizeof(arr)/sizeof(arr[0]);七、数组重要禁忌规则数组绝对不能越界访问会产生随机值、程序报错数组名不能直接赋值给另一个数组arr2 arr1; 写法错误数组名代表首元素地址不可修改八、数组名特性数组名 默认为首元素地址普通访问数组元素 不需要取地址 九、一维数组内存存储特点数组元素在内存中 连续存放每个数组元素单独占用对应类型字节空间内存单元有唯一地址编号十、一维数组经典算法冒泡排序含优化核心逻辑外层循环控制排序趟数内层循环控制每趟比较次数优化一趟没有交换说明数组已经有序直接跳出完整代码intarr[]{7,4,3,5,6,8,1,2};intsizesizeof(arr)/sizeof(arr[0]);for(inti0;size-1;i){intflag0;for(intj0;jsize-1-i;j){if(arr[j]arr[j1]){inttmparr[j];arr[j]arr[j1];arr[j1]tmp;flag1;}}if(flag0)break;}二分查找折半查找前提数组必须有序核心变量left左边界right右边界mid中间下标完整代码intsortedArr[]{1,2,3,5,6,8,43,75};intsizesizeof(sortedArr)/sizeof(sortedArr[0]);inttarget6;intleft0;intrightsize-1;intresult-1;whileright){intmidleft(right-left)/2;if(sortedArr[mid]target){resultmid;break;}elseif(sortedArrtarget)leftmid1;elserightmid-1;}十一、二维数组知识点创建格式intarr[4][5];//4行5列核心特点二维数组在内存中 连续存储可以省略行数不能省略列数四种初始化方式分行初始化intarr[2][3]{{1,2,3},{4,5,6}};整体顺序初始化intarr[2][3]{1,2,3,4,5,6};不完全初始化未赋值默认0intarr[2][3]{{1},{4,5}};省略行数初始化编译器自动计算行数intarr[][3]{1,2,3,4,5};十二、补充全局知识点数组属于自定义类型数组不能整体赋值只能遍历赋值字符数组不加 \0 strlen 会越界乱读值初始化空间必须足够避免内存异常十三、数组练习题删除指定数先输入10个数字存在数组中输入一个整数n删除等于n的数字剩余在最前面后面的依次覆盖前面删除一个只看前九个(数组的有效元素个数-1)外循环如果进行了删除操作i不变intmain(){intarr[10]{1,1,2,2,3,1,2,2,4,2};intsizesizeof(arr)/sizeof(arr[0]);inti0;intn0;scanf(%d,n);while(isize){if(arr[i]n){intji1;while(jsize){arr[j-1]arr[j];j;}size--;}else{i;}}for(inti0;isize-1;i){printf(%d,arr[i]);}}合并两个升序排列的数组#includestdio.hintmain(){// 两个有序升序数组intarr1[]{1,2,3,4,5};intarr2[]{1,3,4,5,6};// 存放合并结果的数组intarr3[10]{0};inti0;// arr1下标intj0;// arr2下标intk0;// arr3下标// 计算两个数组元素个数intsz1sizeof(arr1)/sizeof(arr1[0]);intsz2sizeof(arr2)/sizeof(arr2[0]);// 双指针同步遍历取较小值放入新数组while(isz1jsz2){if(arr1[i]arr2[j]){arr3[k]arr1[i];i;}else{arr3[k]arr2[j];j;}k;}// 把arr1剩余元素全部移入结果数组while(isz1){arr3[k]arr1[i];i;k;}// 把arr2剩余元素全部移入结果数组while(jsz2){arr3[k]arr2[j];j;k;}// 遍历打印合并后的有序数组for(i0;ik;i){printf(%d ,arr3[i]);}return0;}杨辉三角每个数都是他左上方和右上方之和#includestdio.hintmain(){inti0;intj0;intarr[10][10];// 生成杨辉三角for(i0;i10;i){arr[i][0]arr[i][i]1;for(j1;ji;j){arr[i][j]arr[i-1][j-1]arr[i-1][j];}}// 打印输出for(i0;i10;i){for(j0;ji;j){printf(%-6d,arr[i][j]);}printf(\n);}return0;}
GitHub Copilot $10/月,Cursor Pro $20/月——多花一倍,代码接受率能多多少?
我在同一个项目上各用两周,记录了每一次 Tab 补全的接受和拒绝。Copilot 是老牌选手,Cursor 是当红炸子鸡——但"好"是有代价的。…
📅 2026/7/13 1:31:20
3分钟学会!这款免费Chrome视频下载插件让你轻松保存网页视频 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper
还在为无法保存网页视…
📅 2026/7/13 1:30:20
适用场景与接口能力边界
在企业资质核验、合规审查、供应商管理、电商入驻审核等场景中,经常需要从营业执照图片中自动化提取关键字段。本文介绍的营业执照识别 API 支持将 JPG/PNG 图片(URL 或 base64 编码)上传后,返回统一社会…
📅 2026/7/13 1:30:20
传感器、电极、毛细管要安全穿越承压或真空容器壁——这是航空发动机台架、氢能高压加注实验室、半导体真空工艺设备中的共性技术难题。传统做法依赖焊接或填料函,但在高温循环下焊缝易开裂、填料易老化,且拆换往往需要动火停机。英国 TC Ltd.࿰…
📅 2026/7/13 2:46:46
1. 项目概述:为什么我们需要重新审视 vector?在 C 的世界里,std::vector大概是每个开发者最早接触、使用最频繁的容器之一。它太“好用”了,以至于很多时候我们把它当成一个“会自动变大的数组”,只管往里塞数据&#…
📅 2026/7/13 2:46:46
很多想开童装店的老板都会问:四川童装行业现在还有机会吗?答案是:有机会,但不是以前那种“拿一批货、开个门店、等顾客上门”的机会。现在童装行业还能做,但对老板的要求更高了。你要懂选址、懂货盘、懂补货、懂陈列、…
📅 2026/7/13 2:46:46
很多人以为 Codex 只是一个会回答问题的聊天窗口,但这场直播真正展示的是另一件事:AI 开始像工程师一样工作。
它会先读取项目文档,判断项目需要什么环境,再检查 Python、Node.js、FFmpeg、渲染器等基础依赖。遇到报错时ÿ…
📅 2026/7/13 2:46:46
P2P搜索的技术革命:Rats Search如何重新定义分布式BitTorrent搜索 【免费下载链接】rats-search rats-search: BitTorrent P2P multi-platform search engine for Desktop and Web servers with integrated torrent client 项目地址: https://gitcode.com/gh_mirr…
📅 2026/7/13 2:46:46
想搞自动化又怕踩坑?这篇直接告诉你_openclaw能干什么,帮你省下至少三天的摸索时间,少交两万块智商税。说实话,刚接触_openclaw能干什么这个问题时,我也是满脑子问号。那天凌晨两点,我盯着屏幕上那一堆乱码,咖啡都凉透了,心里那股火蹭蹭往上冒。我就想问,这玩意儿到底…
📅 2026/7/13 2:45:33
做技术的人都知道,环境配置是最让人头秃的环节。特别是当你面对一个相对小众或者刚起步的项目时,文档可能不全,社区可能冷清。这时候,找到靠谱的来源就显得尤为重要。今天咱们不聊虚的,就聊聊怎么稳妥地完成 openclaw安装官方 流程,顺便分享几个我踩过的坑,希望能帮你省…
📅 2026/7/13 0:01:22
1. 项目概述:当火焰特效成为帧率杀手在UE5项目里,尤其是那些追求电影级视觉的开放世界或者大场景战斗游戏,一个熊熊燃烧的篝火、一次震撼的爆炸,往往是点燃玩家情绪的关键。Niagara作为虚幻引擎5中取代了老旧的Cascade的下一代粒子…
📅 2026/7/13 0:01:52
1. 项目概述与核心价值 最近在对接抖音小游戏平台时,侧边栏复访功能成了一个绕不开的“必答题”。很多开发者朋友,包括我自己一开始,都对这个功能有点摸不着头脑:它到底是什么?为什么平台这么重视?不接入行…
📅 2026/7/13 0:01:52
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/12 0:00:04
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/12 0:00:28
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/12 0:00:28
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/12 0:15:59
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/12 15:39:57
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/12 8:07:36