C语言 函数与数组
📅 2026/8/2 4:12:15
👁️ 次浏览
一、函数与一维整形数组1. 数组传参写法函数定义格式返回值 函数名(int 数组名[], int len) { // 函数内部数组使用规则和外部一致 // sizeof(数组名形参) → 等价sizeof(int *)64位系统占8字节无法计算数组总长度 }函数调用函数名(数组名, 数组长度);示例void print_array(int a[], int len) { for(int i0; ilen; i) printf(%d , a[i]); } // 调用 int arr[10] {1,2,3}; int len sizeof(arr)/sizeof(arr[0]); print_array(arr, len);2. 核心知识点数组名本质是数组首元素地址数组传参传递的是地址地址传递形参数组[]内常量可省略不能省略数组类型int必须手动传递数组长度函数内部无法通过sizeof算出原数组长度地址传递特性函数内修改数组元素外部原数组同步改变。二、函数与一维字符型数组字符串1. 传参格式函数定义返回值 函数名(char 数组名[]) { // 字符串自带\0结束标记无需额外传长度 }调用函数名(字符数组名);示例void print_str(char str[]) { printf(%s, str); } char s[32] hello; print_str(s);2. 核心知识点无需传递长度字符串末尾存在\0作为结束标识函数内可循环遍历到\0截止形参本质仍是地址sizeof(字符数组形参) 指针大小8 字节不能求原数组总字节地址传递函数内修改字符外部原字符串同步变化。三、函数与二维整形数组1. 传参格式定义规范行数可省略列数必须指定返回值 函数名(int 数组名[][列数], int 行数) { // 列数可通过 sizeof(a[0]) / sizeof(a[0][0]) 计算 }调用示例int a[3][4] {{1,2},{3,4}}; void print_2D(int arr[][4], int row) { int col sizeof(arr[0])/sizeof(arr[0][0]); for(int i0; irow; i) for(int j0; jcol; j) printf(%d , arr[i][j]); } print_2D(a, 3);核心规则二维数组传参形参第二维列不能省略否则编译器无法计算每行内存偏移行数无法在函数内部自动计算必须通过参数传入本质依旧传递数组首地址函数内修改元素会同步影响外部二维数组。四、函数与二维字符型数组存储多组字符串1. 传参格式定义列数固定行数作为参数传入返回值 函数名(char 数组名[][固定列数], int 行数) { }调用示例char str[3][100] {apple, banana, orange}; void print_str_arr(char s[][100], int hang) { for(int i0; ihang; i) puts(s[i]); } print_str_arr(str, 3);说明二维字符数组每行存储 1 个独立字符串每行末尾自带\0传参规则和二维整形数组一致列数不可省略。五、变量的作用域与生命周期从空间作用域、\\时间生命周期\\两个维度划分变量。1. 作用域变量可访问的代码范围1局部作用域定义在{}内部函数内变量、函数形参都属于局部变量。仅当前大括号内可访问出{}直接失效同名变量遵循就近原则内层局部变量屏蔽外层同名变量。2全局作用域定义在所有函数、{}外部的全局变量。整个.c文件任意位置均可访问配合extern可跨文件访问。作用域通用规则变量必须先定义后使用同一作用域不能定义同名标识符嵌套作用域同名变量内层优先。2. 生命周期变量内存从开辟到销毁的存活时长1动态生命周期局部普通变量 auto开辟执行到变量定义代码时分配栈内存销毁离开当前{}作用域栈内存立即回收存储位置栈区初始值未手动初始化时为随机垃圾值。2静态生命周期全局变量 /static 局部静态变量生命周期和整个程序运行周期一致程序启动分配内存程序结束才回收。存储位置数据段.data已初始化 /.bss未初始化初始值不手动赋值默认自动清 0static 局部变量特殊点作用域仍为局部仅生命周期延长。3. 变量四大存储类型格式存储类型 数据类型 变量名;1auto默认所有局部变量默认auto可省略动态栈内存出作用域销毁。2static 静态三种用法修饰局部变量延长生命周期为静态仅第一次进入函数初始化多次调用保留上次值作用域不变仅限函数内访问修饰全局变量限制作用域仅当前.c文件可用外部文件无法 extern 引用修饰函数函数仅本文件内调用对外文件隐藏。3register 寄存器变量作用建议编译器将变量存入 CPU 寄存器加快读写速度限制仅建议编译器可忽略寄存器无内存地址不能取地址。4extern 外部声明修饰全局变量声明该变量定义在其他文件允许跨文件访问修饰函数声明函数实现在外部文件本文件可调用。4. 程序内存分区图说明文本区代码段 .text存放程序二进制指令a.out 编译后的机器码只读常量区.rodata字符串常量、const 只读常量数据区.data手动初始化的全局变量、static 静态变量.bss未初始化全局 /static 变量程序启动自动置 0堆区手动内存分配malloc/free自主控制开辟释放栈区普通局部变量、函数形参、函数调用现场函数退出自动回收内核区、寄存器、cacheCPU 硬件存储程序不可直接操作。
“不知道看什么”其实不是选择太少,而是筛选条件太多却说不清。
有时想看一部节奏快、评分高的犯罪片;有时只想找一部适合周末、不费脑又不太俗套的电影;还有时,你记得某个演员、一个情节,甚至只记得“像某部片子的感…
📅 2026/8/2 4:12:15
1. 从“App Store”到“App Market”:一个AI时代的隐喻最近在折腾Jetson设备,从Nano到Orin NX,再到AGX Orin,一个绕不开的话题就是“环境配置”。无论是想跑通一个YOLOv5的Demo,还是部署一个基于TensorRT加速的AI服务&…
📅 2026/8/2 4:12:15
高可靠性半导体器件在汽车电子、航空航天与通信基站等场景中的服役环境愈发严苛,焊接空洞率直接关系到芯片散热路径与电流承载能力。真空回流焊机作为提升焊接致密性的关键设备,近年来在功率模块、IGBT、碳化硅器件封装产线上受到越来越多的关注。相比传…
📅 2026/8/2 4:12:15
1. 从“冲激响应”到“卷积积分”:一个工程师的视角在信号与系统的世界里,连续时间系统的时域分析,尤其是卷积积分,常常是初学者从“会做题”到“真理解”的一道分水岭。我第一次接触这个概念时,感觉它像是一个凭空出现…
📅 2026/8/2 5:00:42
1. 项目概述:一场由AI驱动的春节消费狂欢春节档向来是各大互联网平台营销的必争之地,但今年,战火从传统的电商、支付、本地生活,直接烧到了AI领域。当大家还在讨论大模型能写诗、能画画时,阿里旗下的通义千问直接甩出了…
📅 2026/8/2 5:00:42
这次我们来看一个名为“姐姐,这是你第一次说想我”的项目。从标题来看,这很可能是一个与情感化AI对话、语音生成或特定角色互动相关的技术应用。这类项目通常结合了自然语言处理(NLP)和语音合成(TTS)技术&a…
📅 2026/8/2 5:00:42
1. 项目概述:当蓝牙在升级后“消失” 如果你最近给自己的宏碁笔记本换上了一块全新的Intel BE200 Wi-Fi 6E无线网卡,满心欢喜地发现Wi-Fi连接速度飙升,信号也稳定了不少,结果一扭头发现蓝牙功能彻底“失踪”了——设备管理器里找不…
📅 2026/8/2 5:00:42
为什么越来越多的企业开始用AI写标书?2026年,招投标市场的竞争已进入精细化阶段。一份高质量的投标书,不仅要在内容上响应招标文件的要求,还要在格式规范、资质匹配、业绩呈现、技术方案等维度做到零瑕疵。传统模式下,写标书往往…
📅 2026/8/2 5:00:41
1. 从“下载”到“激活”:一份被忽略的安装前准备清单如果你正准备在电脑上安装CAXA 3D实体设计2023,并且已经找到了安装包,那么我建议你先别急着双击那个“Setup.exe”。在我过去十多年接触各类工业设计软件的经历中,超过一半的安…
📅 2026/8/2 4:59:41
1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…
📅 2026/8/2 0:00:48
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…
📅 2026/8/2 0:00:48
1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同ÿ…
📅 2026/8/2 0:00:48
1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…
📅 2026/8/2 0:00:48
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…
📅 2026/8/2 0:00:48
1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同ÿ…
📅 2026/8/2 0:00:48
AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言
HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…
📅 2026/8/2 1:22:12
无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut
在数字媒体创作领域,视频编辑处理的质量损…
📅 2026/8/2 0:02:59
1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…
📅 2026/8/2 1:22:12