嵌入式学习 day9:函数
📅 2026/7/30 5:37:52
👁️ 次浏览
一、二维字符数组二维字符数组本质上就是一个字符串数组——每一行存一个字符串。1. 定义cchar str[5][32]; // 5行每行最多31个字符留1个给\02. 元素的访问cstr[0] // 访问第0行代表第0个字符串 str[0][2] // 访问第0行第2列单个字符3. 初始化c// 方式一逐字符初始化 char str[5][32] { {h, e, l, l, o, \0}, {w, o, r, l, d, \0} }; // 方式二字符串初始化最常用 char str[5][32] {hello, world, how, are, you}; // 方式三全部置零 char str[5][32] {0};4. 输入与输出cchar str[5][32] {0}; // 输入5个字符串 for (int i 0; i 5; i) { scanf(%s, str[i]); // str[i] 本身就是地址不用加 } // 输出5个字符串 for (int i 0; i 5; i) { printf(str[%d] %s\n, i, str[i]); }⚠️ 二维字符数组的每一行都是一个一维字符数组str[i]本身就是字符串的首地址所以scanf不用加。二、函数1. 为什么需要函数有些操作要反复做——比如求两个数的最大值、判断闰年。每次都把同样的代码复制粘贴一遍代码会变得又臭又长改一个地方要改好几处。函数就是把重复的代码封装起来哪里需要就调用哪里。2. 函数的定义c函数类型 函数名(数据类型 形参1, 数据类型 形参2, ...) { 函数体; return 返回值; }几个要点函数名规则和变量名一样见名知意形参函数要处理的数据通过形参传进来函数类型返回值的数据类型不写默认int没有返回值就写void返回值函数运行完的结果通过return返回c// 例子求两个整数中较大的那个 int max(int a, int b) { return (a b) ? a : b; }3. 函数的调用cint result max(10, 20); // result 20传参规则实参个数和形参个数必须一一对应类型不匹配时会自动转换按形参类型转4. 函数的声明如果被调函数写在主调函数下面需要先声明c// 声明告诉编译器有这个函数 int max(int a, int b); int main(void) { int m max(10, 20); return 0; } // 定义 int max(int a, int b) { return (a b) ? a : b; }如果被调函数写在主调函数上面就不需要声明了。三、变量的作用域和生存周期1. 作用域哪里能用局部变量在函数或代码块{}内定义只能在这个范围内使用全局变量在所有函数外面定义整个文件都能用cint global 100; // 全局变量 void func(void) { int local 10; // 局部变量 printf(%d\n, global); // ✅ 能用全局 } int main(void) { printf(%d\n, local); // ❌ 错误main里看不到local printf(%d\n, global); // ✅ 能用全局 return 0; }2. 生存周期什么时候存在局部变量执行到定义时开辟空间出了作用域就回收全局变量程序启动时就存在程序结束才回收四、变量的存储类型1. auto自动型默认cauto int a; // 等价于 int a;存在栈区不初始化就是随机值进入作用域时开辟退出时回收2. register寄存器存储cregister int a;尽量放在CPU寄存器里更快如果寄存器满了等价于auto3. extern外部声明声明变量或函数是在别处定义的多文件编程时用。4. static静态存储作用域受限只能在当前文件里用防止多文件命名冲突生命周期延长程序启动时分配程序结束才回收默认初始化为0cstatic int count; // 默认值为0 static void helper(void) { } // 只能在当前文件用五、函数传参方式值传递C语言默认方式cvoid swap(int a, int b) { int tmp a; a b; b tmp; } int main(void) { int x 10, y 20; swap(x, y); printf(x%d, y%d\n, x, y); // 还是 10, 20没变 return 0; }值传递的本质是拷贝——实参把自己的值复制一份给形参形参怎么改都不影响实参。六、今日总结今天学了二维字符数组和函数核心要点如下二维字符数组本质是字符串数组每一行存一个字符串定义char 数组名[行数][列数]初始化char str[3][32] {hello, world, C};访问str[i]代表第i个字符串str[i][j]代表第i个字符串的第j个字符输入输出scanf(%s, str[i])不用加函数部分函数三要素定义写逻辑、调用用逻辑、声明告诉编译器作用域局部变量只在当前{}内有效全局变量整个文件都能用生存周期局部变量随函数调用而生、随函数结束而灭全局变量随程序static关键字让变量生命周期延长到程序结束同时限制作用域在当前文件值传递C语言传参是拷贝形参改变不影响实参今日感悟以前所有逻辑都堆在main函数里写着写着很容易看混。把功能拆成一个个小函数之后main函数变成了目录一眼就能看懂整个程序的流程简洁易懂。
1. 项目概述:从“题库”到“能力认证”的深度认知最近在社区和群里,看到不少朋友在讨论FineBI认证的题库和答案。这让我想起了自己当年备考各类技术认证的经历,从最初的“背题求过”,到后来真正理解工具、形成自己的分析思维&…
📅 2026/7/30 5:37:52
买前信誓旦旦,买后后悔莫及。这大概是所有数码配件买家最痛的领悟。尤其是最近风很大的 geo309,直播间里喊得震天响,什么“旗舰平替”、“性能怪兽”,听得人心痒痒。但真金白银砸下去之后,发现手感像塑料,连接还老断连,这种糟心事儿谁不想避免?今天我不整那些虚头巴脑的…
📅 2026/7/30 5:37:47
1. 从WPA3的“绝对安全”神话说起最近在安全圈里,一个关于WPA3安全性的讨论又热了起来,源头就是“H2E”这个缩写。很多朋友,尤其是刚接触无线安全或者对家庭网络防护比较上心的朋友,看到“WPA3也不安全啦?”这样的标题…
📅 2026/7/30 5:36:52
终极游戏文本提取指南:Textractor让游戏翻译和文本分析变得简单 【免费下载链接】Textractor Extracts text from video games and visual novels. Highly extensible. 项目地址: https://gitcode.com/gh_mirrors/te/Textractor
你是否曾经因为语言障碍而无法…
📅 2026/7/30 6:42:57
终极指南:如何在iPhone、iPad和Mac上免费运行Windows、Linux虚拟机? 【免费下载链接】UTM Virtual machines for iOS and macOS 项目地址: https://gitcode.com/gh_mirrors/ut/UTM
UTM是一款专为iOS和macOS设计的强大系统模拟器和虚拟机主机&…
📅 2026/7/30 6:42:57
1. 为什么说“从零到精通”是个伪命题,以及我们该如何正确看待它 看到这个标题,你可能会想,真的存在一篇教程能让人从零基础直接“精通”Python吗?作为一个写了十几年代码、带过不少新人入行的老程序员,我得先泼一盆冷…
📅 2026/7/30 6:42:57
GetQzonehistory完整指南:三步实现QQ空间历史数据永久备份 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
你是否曾担心QQ空间里的珍贵回忆会随着时间流逝而消失?…
📅 2026/7/30 6:42:57
1. 项目概述:从模糊需求到精准匹配最近在做一个内容审核相关的项目,里面有个需求挺典型的:用户上传了一段文本,我们需要在已有的海量文本库里,快速找出和它“意思差不多”的条目。比如,用户输入“苹果手机最…
📅 2026/7/30 6:42:57
说实话,做互联网这行久了,你会发现一个挺扎心的真相:很多老板天天盯着那些所谓的“爆款公式”,结果钱烧了不少,水花都没见着几个。最近有个做本地生活的朋友跟我吐槽,说现在流量贵得离谱,以前投个几十块能引来一帮人咨询,现在投几百块连个影儿都摸不着。其实吧,这真不…
📅 2026/7/30 6:42:21
本文关键词:geo2是共价化合物哎,说实话,每次看到化学题里那些弯弯绕绕的电子式,我就头大。特别是遇到那种非要让你判断是离子还是共价的,心里就发毛。今天咱不整那些虚头巴脑的定义,就聊聊二氧化硅,也就是大家常说的硅石、石英,很多人会误写成geo2,虽然化学式不对,但…
📅 2026/7/30 0:00:24
B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…
📅 2026/7/30 0:00:26
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer
您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…
📅 2026/7/30 0:00:26
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/30 1:16:07
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/30 1:16:07
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/30 1:16:07
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/29 7:15:11
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/29 17:15:46
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/30 5:16:22