嵌入式开发学习日志(二维数组、 字符数组、 函数入门) day9 持续更新中
一、二维整型数组1. 二维数组定义格式类型说明符 数组名[行数][列数];示例int a[3][4]; // 存储12个int数据 float b[3][4]; // 存储12个float数据内存下标分布a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]2. 二维数组的访问格式数组名[行下标][列下标];行下标范围0 ~ 行数-1列下标范围0 ~ 列数-13. 二维数组的初始化1全部初始化int a[3][4] {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; int a[][4] {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; int a[3][4] {1,2,3,4,5,6,7,8,9,10,11,12}; int a[][4] {1,2,3,4,5,6,7,8,9,10,11,12};注意在二维数组有初始化值情况下可以省略行数不能省略列数。2局部初始化int a[3][4] {{1,2}, {5,6,7}, {9}}; int a[3][4] {1,2,3,4,5,6,7,8}; int a[][4] {1,2,3,4,5,6,7}; // 自动识别为2行4列规则未初始化数据按 0 存储。3全部初始化为 0int a[3][4] {0}; int a[][4] {0}; // 自动识别为1行4列4sizeof 计算行列int a[2][3] {{1, 2, 3}, {4, 5, 6}}; sizeof(a); // 总字节6*4 24 sizeof(a[0][0]); // 单个元素字节4 sizeof(a[0]); // 一行字节4*3 12 // 计算行数 sizeof(a)/sizeof(a[0]); // 结果2 // 计算列数 sizeof(a[0])/sizeof(a[0][0]); // 结果34. 二维数组的存储方式单一性数组内数据类型统一示例 int有序性先行后列顺序存放连续性内存空间连续 存储排布顺序a[0][0] → a[0][1] → a[0][2] → a[0][3] → a[1][0] → a[1][1] → a[1][2] → a[1][3] → a[2][0] → a[2][1] → a[2][2] → a[2][3]二、二维字符型数组一维字符数组保存一个字符串二维字符数组保存多个字符串1. 二维字符型数组定义char 数组名[行数][列数];示例char str[3][100]; // sizeof(str) → 3*100 300字节 // 可以存放hello world、how are you、xxxxxxx 三组字符串2. 二维字符型数组初始化char str[3][100] {0}; char str[3][100] {{hello}, {world}, {how}}; char str[3][100] {hello, world, how}; char str[3][100] {hello, world};3. 二维字符型数组输入输出输入示例char str[3][100] {0}; for (int i 0; i 3; i) { gets(str[i]); }输出示例for (int i 0; i 3; i) { puts(str[i]); //printf(%s\n, str[i]); }补充提示gets()函数 C11 标准已废弃仅作课堂学习参考正式开发建议替换。三、函数基础1. 函数定义格式返回值 函数名(形参表) { 函数体; }返回值支持 int、char 等基础类型、构造数据类型、void返回值函数最终运算结果void空类型函数执行完成不需要返回结果时使用函数名合法标识符建议见名知意例strcpystring copy、get_max_val ();形参表函数执行需要用到的条件书写形式数据类型 形参名, 数据类型 形参名, ...2. 函数的调用格式函数名(实参表);实参表传递给函数的具体数据常量、变量、表达式 调用规则实参个数和形参个数必须一致实参、形参数据类型一致或者互相兼容实参和形参名字可以相同也可以不相同函数不调用则不执行调用几次执行几次返回值规则有明确返回类型的函数必须使用return缺少 return 系统返回随机值void类型函数可以省略 return也可以单独写return;概念区分主调函数发起调用的函数典型main 函数被调函数被别人调用的函数四、知识点总结速记二维数组初始化可省行数不可省略列数未赋值元素默认 0二维数组内存连续先行后列依次存放char arr[N][M]N 代表字符串数量M 代表单个字符串最大长度函数模块化代码减少重复代码降低程序耦合性形参写在定义处实参写在调用处个数、类型必须匹配。

相关新闻

港澳跨境酸护肤品代工合规全套技术规范

港澳跨境酸护肤品代工合规全套技术规范

一、双国际资质技术认证体系认证认证机构技术范围有效期复审周期ISO22716SGS/BV等化妆品GMP3年年度监督FDA注册美国FDA企业产品年度年度更新GMPC欧盟认可机构良好生产规范3年年度监督技术要点:双认证需同步出具中英文盖章版本,仅中文版无效。 二、海运长…

2026/7/31 7:08:35阅读更多 →
RC时间常数计算:从理论公式到工程实践的全面解析

RC时间常数计算:从理论公式到工程实践的全面解析

1. 从一次“延时”故障说起:为什么RC时间常数如此重要前段时间,一个做智能家居的朋友找我帮忙,他设计了一个简单的触摸感应开关,原理是利用RC充放电来检测人体电容。电路很简单,一个触摸电极通过一个大电阻连接到MCU的…

2026/7/31 7:08:35阅读更多 →
Android Camera2 API深度解析:从架构原理到实战应用

Android Camera2 API深度解析:从架构原理到实战应用

1. 项目概述:为什么我们需要深入理解Camera2 API?如果你是一名Android应用开发者,并且你的应用需要与摄像头打交道,那么你大概率已经听说过,甚至“深受其苦”于Camera2 API。从Android 5.0(API Level 21&am…

2026/7/31 7:06:35阅读更多 →
个人量化行情数据源排行榜:AkShare、Tushare、Massive、TickDB、Wind、mootdx,四种场景下怎么选?

个人量化行情数据源排行榜:AkShare、Tushare、Massive、TickDB、Wind、mootdx,四种场景下怎么选?

一个数据源的综合排名,只能回答“个人量化用户第一次该优先评估谁”。真正开始做研究、回测、实时监控或 AI Agent 后,榜单必须按任务重排。 本文先给出面向个人量化用户的综合推荐榜,再按四种任务重新排序。比较时主要看:任务适…

2026/7/31 8:18:54阅读更多 →
智能车竞赛循迹控制:基于状态机的直道、弯道、十字路口处理策略

智能车竞赛循迹控制:基于状态机的直道、弯道、十字路口处理策略

1. 项目概述:从赛道元素到代码逻辑的映射 搞智能车竞赛的兄弟们都清楚,赛道就是我们的战场,而直道、弯道、十字路口这些基础元素,就是战场上最核心的地形。今天要聊的这个开源项目,核心就是解决如何让车在这三种典型赛…

2026/7/31 8:18:54阅读更多 →
实测允安金属木质围墙护栏:亮点与短板揭秘,适合这些人群!

实测允安金属木质围墙护栏:亮点与短板揭秘,适合这些人群!

现在越来越多的人关注木质围墙护栏,为了让大家更全面地了解不同产品,本次测评对允安金属木质围墙护栏进行实测,旨在为感兴趣的人群提供客观的数据和信息。参与本次测评的产品为允安金属木质围墙护栏。本次测评均基于真实数据与体验&#xff0…

2026/7/31 8:18:54阅读更多 →
RePKG新手教程:3步解锁Wallpaper Engine壁纸资源宝库

RePKG新手教程:3步解锁Wallpaper Engine壁纸资源宝库

RePKG新手教程:3步解锁Wallpaper Engine壁纸资源宝库 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾经对Wallpaper Engine中精美的动态壁纸感到好奇&#xff0…

2026/7/31 8:18:54阅读更多 →
使用Cheat Engine修改单机游戏数据:从内存扫描到指针定位实战

使用Cheat Engine修改单机游戏数据:从内存扫描到指针定位实战

1. 从“打不过”到“玩得爽”:为什么我们要修改游戏数据? 作为一名玩了十几年塔防游戏的老玩家,我对《王国保卫战》(Kingdom Rush)系列的感情很深。它关卡设计精妙,英雄和塔楼系统丰富,但有时候…

2026/7/31 8:18:54阅读更多 →
提示词工程:优化AI输出的核心技术

提示词工程:优化AI输出的核心技术

1. 提示词工程的本质与价值 在AI交互领域,提示词工程(Prompt Engineering)正成为连接人类意图与机器理解的关键桥梁。这个看似简单的技术背后,实则蕴含着语言结构学、认知心理学和机器学习的三重交叉。我最早接触这个概念是在调试…

2026/7/31 8:16:54阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/30 15:03:16阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/30 12:22:27阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/30 15:13:02阅读更多 →
物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:40阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:41阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/31 0:49:33阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/31 5:08:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/30 15:43:46阅读更多 →