【C语言进阶】:从定义、调用函数到递归与数组传参
五、函数函数是C语言程序的基本构建块它能够降低程序的耦合性关联度减少重复代码让程序模块化增强代码的复用性。1. 函数定义函数的具体实现返回值 函数名形参表 { 函数体 }返回值类型说明符如int、char等基本数据类型、构造数据类型或void空类型不需要返回任何结果用于返回函数最终结果。函数名遵循标识符的命名规则见名知意。形参表函数执行过程中需要用到的条件。形式数据类型 形参名, 数据类型 形参名...2. 函数的调用函数名实参表实参表传递给函数的具体的条件。形式值1, 值2...注意实参的个数和形参的个数必须一致实参和形参数据类型要一致或者相兼容实参和形参名字可以相同也可以不相同函数不被调用则不执行调用几次执行几次。函数名(实参表);表达式的结果是函数的返回值类型。当函数的返回值有一个明确的返回类型时必须要return如果不return系统会返回一个随机值。void返回值类型时可以不return或者直接写return ;。主调函数调用函数的函数称为主调函数如main被调函数被调用的函数3. 函数的声明声明的作用当被调函数定义在了主调函数的后边编译器报“implicit declaration”可以将该函数在主调函数前面进行声明多文件使用函数的时候需要对其声明允许其他文件调用。语法返回值 函数名形参表4. 函数的调用过程保护现场当函数要被执行调用时会将函数调用位置的下一条指令地址保存在栈空间恢复现场当被调函数执行完时通过出栈保护现场的地址决定CPU继续执行的位置在函数被调用的下一条指令位置。5. 函数的传参函数传参的过程其实是实参向形参拷贝的过程实参有实参的空间形参有形参的空间值传递值传递在被调函数中无法修改主调函数中的变量函数传参的顺序自右向左。6. 函数的递归调用递归调用函数直接或者间接的调用自己。本质循环方式。注意递归要有递归的出口否则会成为死循环。递归调用系统开销比循环大比如栈内存。示例代码//求1-n的和 int get_sum(int num) { if(1 num) { return 1; } return get_sum(num - 1) num; } //求斐波那契数 int fibonacci(int n) { if(1 n || 2 n) { return 1; } return fibonacci(n - 1) fibonacci(n - 2); } //求阶乘 int factorial(int n) { if(1 n || 0 n) { return 1; } return factorial(n - 1) * n; }7. 函数和一维整形数组传参方式//定义 返回值 函数名int 数组名[], int len { // sizeof(数组名); ----》sizeof(int *) ----8字节 函数体 } //调用 函数名(数组名, 数组长度); void print_array(int a[], int len) { // 函数体 } print_array(a, len); // 数组的数组名是数组的首元素地址注意数组作为函数参数传递时形参必须要是数组类型int a[][]中的常量可以有也可以省略。数组作为函数参数传递时本质传递的是数组首元素地址所以形参本质上是一个地址是数组的起始地址。由于数组名传参本质传递的是首地址所以必须要传递整形数组的长度。数组作为函数参数传递给被调函数后函数内部的使用方法和外面使用一样除了sizeof(数组名)。

相关新闻

电机拉马使用指南:无损更换电机齿的专业方法与实操流程

电机拉马使用指南:无损更换电机齿的专业方法与实操流程

电机齿,这个在模型车、无人机、机器人等机电设备中看似不起眼的小零件,却常常是性能提升或故障修复的关键。你是否遇到过电机空转、动力传递失效,或者想升级动力系统却对更换电机齿一筹莫展的情况?很多人以为这只是个简单的“拧螺…

2026/8/1 6:04:01 阅读更多 →
Claude Code 完整入门教程

Claude Code 完整入门教程

摘要:本文是一篇面向零基础小白的 Claude Code 完整入门教程。文章从模型、Chatbot、Agent、API Key、Token、上下文窗口、Skill 到 MCP 等核心概念扫盲入手,然后以 Windows 为例逐步讲解 Git Bash、Node.js 和 Claude Code 的安装配置,最后详…

2026/8/1 6:04:01 阅读更多 →
快速学习Python基础知识详细图文教程13--异常处理

快速学习Python基础知识详细图文教程13--异常处理

来源引用网络知识与某站曹老师视频相互结合学习记录,仅供参考! Python 基础知识 异常处理 异常的概念 Python 中的异常是指程序运行的过程中出现了错误,也叫 Bug;即便 Python 程序的语法是正确的,在运行它的时候&am…

2026/8/1 6:04:01 阅读更多 →

最新新闻

Python字符串转浮点数错误解析与数据清洗实战指南

Python字符串转浮点数错误解析与数据清洗实战指南

1. 问题本质与场景剖析“ValueError: could not convert string to float”这个错误,但凡写过几天Python的朋友,大概率都见过。它就像一个不请自来的老朋友,在你处理数据、读取文件或者解析用户输入时,冷不丁地跳出来给你一个“惊…

2026/8/1 6:37:12 阅读更多 →
Voronoi图:空间划分的数学之美与多领域应用实践

Voronoi图:空间划分的数学之美与多领域应用实践

1. 从“谁的地盘谁做主”说起:Voronoi图的直观理解想象一下,你站在一片空旷的田野上,周围散落着几个村庄。现在,你需要决定:对于田野里的任意一个点,比如一棵树或者一口井,它应该归属于哪个村庄…

2026/8/1 6:37:12 阅读更多 →
易语言托盘图标开发实战:从基础组件到后台工具完整实现

易语言托盘图标开发实战:从基础组件到后台工具完整实现

1. 从“最小化到托盘”说起:为什么我们需要托盘图标?如果你用过QQ、微信、网易云音乐这类桌面软件,一定对它们的一个行为不陌生:当你点击窗口右上角的“X”关闭按钮时,窗口看似消失了,但任务栏上它的图标也…

2026/8/1 6:37:12 阅读更多 →
重新掌控你的macOS:noTunes如何优雅地阻止音乐应用自动启动

重新掌控你的macOS:noTunes如何优雅地阻止音乐应用自动启动

重新掌控你的macOS:noTunes如何优雅地阻止音乐应用自动启动 【免费下载链接】noTunes A simple macOS application that will prevent iTunes or Apple Music from launching. 项目地址: https://gitcode.com/gh_mirrors/no/noTunes 您是否曾在专注工作时被突…

2026/8/1 6:37:12 阅读更多 →
基于CH32H417WEU6的USB3.0逻辑分析仪实战指南

基于CH32H417WEU6的USB3.0逻辑分析仪实战指南

这类开源硬件项目最值得先看的不是功能列表,而是能不能在普通开发环境里稳定跑起来。逻辑分析仪的核心价值在于能抓取数字信号,帮助排查通信协议、时序问题和硬件交互异常。CH32H417WEU6 这款 MCU 自带 USB3.0 接口,理论上能支持更高采样率&a…

2026/8/1 6:37:12 阅读更多 →
Python图像处理工具链:从下载到合成的完整实现

Python图像处理工具链:从下载到合成的完整实现

在实际项目开发中,我们经常需要处理图片的批量下载、格式转换和合成任务。这类需求在内容管理、素材处理和自动化运营场景中非常常见。本文将以一个具体的图片处理任务为例,带你从零搭建一个完整的图片处理工具链。这个工具链将涵盖网络图片下载、格式转…

2026/8/1 6:36:12 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →