函数从入门到进阶--知识点总结加代码实战

发布时间:2026/8/16 1:54:19

函数从入门到进阶--知识点总结加代码实战
函数从入门到进阶很多初学C语言的朋友学到 函数 这一章都会卡壳看不懂形参实参、不知道返回值怎么用、分不清全局/局部变量、写代码只会堆main函数、代码杂乱冗余还容易报错。今天这篇博客不堆砌概念全程纯干货可直接运行的实战代码从零带你吃透C语言函数学完直接上手写模块化代码。一、先搞懂到底什么是函数1. 通俗理解函数就是封装好的一段可重复使用的代码块。类比生活洗衣机就是一个“函数”。输入衣服、洗衣液参数内部执行进水、洗涤、脱水函数内部逻辑输出干净的衣服返回值写代码时把重复用到的功能求和、判断奇偶、排序、计算最值封装成函数不用每次重复写代码大幅精简代码、减少bug。2. C语言函数两大核心优势代码复用写一次随处调用不用重复造轮子模块化编程功能拆分清晰代码易读、易改、易排查错误二、C语言函数完整语法必背1. 标准函数格式返回值类型 函数名(形参列表){// 函数主体实现具体功能return返回值;// 和返回值类型对应}2. 各部分详解新手最易混淆点返回值类型函数执行完返回的数据类型int、float、void、char函数名自定义命名遵循标识符规则字母/数字/下划线不能数字开头形参列表函数接收的参数相当于“变量占位符”可空void无返回值函数不需要写return3. 函数的3种分类实战常用无参无返回值简单打印类功能有参无返回值对传入数据做处理不返回结果有参有返回值核心常用处理数据并返回结果三、从零实战3类函数完整代码案例所有代码可直接复制编译运行适配Dev-C、VS、gcc所有编译环境。实战1无参无返回值函数适用场景固定提示、固定图案打印、无需传参和结果的功能。#includestdio.h// 自定义无参无返回值函数voidprintHello(){printf( C语言函数实战 \n);printf(干货满满零基础入门\n);}intmain(){// 直接调用函数printHello();printHello();// 可重复调用return0;}运行结果 C语言函数实战 干货满满零基础入门 C语言函数实战 干货满满零基础入门核心要点void无返回值括号无形参直接函数名()调用。实战2有参无返回值函数适用场景接收外部数据完成打印、判断、修改等操作无需返回结果。案例传入两个整数打印两数之和#includestdio.h// 有参无返回值函数形参a、bvoidgetSum(inta,intb){intsumab;printf(两数之和为%d\n,sum);}intmain(){intx10,y20;// 传入实参x、ygetSum(x,y);getSum(50,30);// 直接传常量也可以return0;}运行结果两数之和为30两数之和为80重点区分形参 vs 实参形参函数定义时括号内的变量int a, int b仅占位不分配实际内存实参调用函数时传入的变量/常量x、y、50、30是真实数据实战3有参有返回值函数项目核心这是最常用的函数类型接收参数处理后返回结果给主函数使用。案例1求两个数的最大值#includestdio.h// 有参有返回值接收两个int返回最大值intintgetMax(inta,intb){if(ab){returna;// 返回结果}else{returnb;}}intmain(){intnum1,num2;printf(请输入两个整数);scanf(%d %d,num1,num2);// 接收函数返回值intmaxgetMax(num1,num2);printf(最大值为%d\n,max);return0;}案例2进阶实战判断一个数是否为素数#includestdio.h#includemath.h// 素数判断函数是素数返回1不是返回0intisPrime(intn){// 小于2不是素数if(n2)return0;// 遍历判断是否能被整除for(inti2;isqrt(n);i){if(n%i0){return0;// 能被整除不是素数}}return1;// 是素数}intmain(){intnum;printf(请输入一个数字);scanf(%d,num);if(isPrime(num)){printf(%d 是素数\n,num);}else{printf(%d 不是素数\n,num);}return0;}四、新手必踩坑函数声明与调用规则1. 经典报错隐式声明函数C语言规则函数必须先声明/定义后调用。如果把自定义函数写在main函数后面直接调用会报错。定义在调用之后且未声明就会报错2. 两种解决方法必掌握方法一函数写在main函数之前适合小型代码方法二函数声明大型项目标准写法#includestdio.h// 函数声明只写头部分号结尾intgetSum(inta,intb);intmain(){printf(%d\n,getSum(10,20));return0;}// 函数定义写在后面intgetSum(inta,intb){returnab;}总结声明告诉编译器“有这个函数”定义是函数具体实现。五、核心重难点局部变量 全局变量90%出错的根源变量作用域搞不清楚。1. 局部变量定义在函数内部仅在当前函数有效函数结束立即销毁不同函数可以定义同名局部变量互不干扰2. 全局变量定义在所有函数外部整个程序所有函数都可以使用程序运行期间始终占用内存3. 对比实战代码#includestdio.hintnum100;// 全局变量voidtest(){intnum200;// 局部变量优先使用printf(函数内部num%d\n,num);}intmain(){printf(main全局num%d\n,num);test();return0;}运行结果main全局num100函数内部num200核心规则局部变量优先局部会屏蔽全局。六、高阶实战递归函数经典例题递归函数自己调用自己核心是「递推终止条件」常用于阶乘、斐波那契数列、遍历问题。实战递归求 n 的阶乘#includestdio.h// 递归求阶乘intfactorial(intn){// 终止条件if(n1||n0)return1;// 递归公式returnn*factorial(n-1);}intmain(){intn;printf(请输入阶乘数);scanf(%d,n);printf(%d的阶乘为%d\n,n,factorial(n));return0;}递归必备核心必须有终止条件否则无限递归、栈溢出报错七、函数实战总结无返回值用void有返回值必须对应类型return先声明/定义后调用杜绝隐式声明报错形参是占位符实参是真实数据数量、类型必须一一对应局部变量仅限当前函数全局变量全程序通用递归必须设置终止条件避免死递归项目开发优先用函数封装拒绝全部代码堆在main里八、实战练习巩固提升大家可以自己手写练习吃透函数核心封装函数求三个整数的最大值封装函数判断闰年递归实现斐波那契数列前n项输出封装函数实现数组求和、求平均值函数是C语言从“入门”到“进阶”的关键看懂概念没用动手敲代码、调试报错、独立封装功能才是真正学会。本篇所有案例均可直接运行建议大家逐行敲写修改参数测试效果彻底吃透函数逻辑

相关新闻

当客户提前做完功课,大客户销售必须把价值力讲成利润语言

当客户提前做完功课,大客户销售必须把价值力讲成利润语言

2026/8/16 1:54:19

客户在接触销售之前,已经用AI搜索引擎把供应商和方案筛过一遍。销售再从头讲产品功能,只会被客户当成没有增量信息的噪音。价值力要做的是把对话拉到客户的利润、投资和经营风险上。一、先判断客户已经走到采购七阶段的哪一步 PSS⁵ 体系力里&#xff0c…

Linux系统关机命令poweroff详解:从原理到实战应用

Linux系统关机命令poweroff详解:从原理到实战应用

2026/8/16 1:54:19

1. 项目概述:从“关机”这个简单动作说起在Linux世界里,关机这个操作,远比你想象的要复杂和有趣。对于很多刚接触Linux的朋友,尤其是从Windows转过来的用户,可能会觉得“关机不就是点一下按钮吗?”但在服务…

实测多种公众号去AI方法:哪种能让朱雀检测结果更自然?

实测多种公众号去AI方法:哪种能让朱雀检测结果更自然?

2026/8/16 1:44:19

如果你的公众号文章阅读量突然断崖式下跌,或者明明写得不错却几乎没有推荐流量,有一种可能你未必想到过:内容被平台判定为AI生成,限流了。 这两年各内容平台陆续上线了AI生成内容识别机制,公众号、知乎、小红书都在做。…

152.SAP RFC 函数开发、测试与外部系统集成教程

152.SAP RFC 函数开发、测试与外部系统集成教程

2026/8/16 3:04:22

摘要 本文面向具备一定编程基础、希望系统掌握SAP ABAP开发的技术人员。内容不涉及SAP GUI操作录屏,而是直击ABAP语言的核心执行逻辑、数据持久化机制以及RFC远程调用原理。文章通过一套完整的、可运行于SAP NetWeaver 7.50及以上版本的生产级代码示例,演示从数据库表定义、…

基于Python的游戏数据自动化报告系统QClaw构建指南

基于Python的游戏数据自动化报告系统QClaw构建指南

2026/8/16 3:04:22

1. 项目概述:当游戏数据遇上自动化报告 作为一名玩了十几年游戏、也写了十几年技术博客的老玩家,我常常面临一个矛盾:游戏打得热火朝天,数据积累了一大堆,但真要坐下来写个总结,回顾一下自己的游戏历程&am…

嘉立创FA商城铝合金外壳定制全流程:从3D设计到CNC加工实战指南

嘉立创FA商城铝合金外壳定制全流程:从3D设计到CNC加工实战指南

2026/8/16 3:04:22

最近在做一个硬件项目,需要为PCB板定制一个外壳。市面上的通用外壳要么尺寸不合适,要么开孔位置不对,要么就是质感太差。找了一圈,最后决定在嘉立创的FA商城试试水,定做了一个铝合金外壳。整个过程体验下来&#xff0c…

AI大模型核心原理:从Transformer架构到涌现能力的技术解析

AI大模型核心原理:从Transformer架构到涌现能力的技术解析

2026/8/16 3:04:22

1. 从“智能”到“涌现”:重新认识AI大模型最近几年,AI大模型这个词几乎无处不在。从能和你聊天的智能助手,到帮你写代码、生成图片的创作工具,再到能理解复杂文档的分析引擎,背后都离不开大模型的驱动。但如果你去问一…

台式电脑功耗全解析:从CPU/GPU耗电到电源选购实战指南

台式电脑功耗全解析:从CPU/GPU耗电到电源选购实战指南

2026/8/16 3:04:22

1. 从“多少瓦”说起:一个被误解的功耗问题每次帮朋友装机或者给公司采购电脑,总会遇到一个看似简单、实则充满误解的问题:“这台电脑大概多少瓦?” 或者更直接的:“我该买个多大功率的电源?” 很多人会把电…

钉钉的钥匙挂在门上,这个待办 App 的钥匙印在说明书上

钉钉的钥匙挂在门上,这个待办 App 的钥匙印在说明书上

2026/8/16 2:54:22

Todo清单的本地数据库用 SQLCipher 加了密,但密钥是开发文档里的示例默认值,厂家没换。我解包源码拿到钥匙,读写双向打通:现在每天的清单由 AI 直接写进 App,晚上导出来复盘。2026 年 7 月 23 日,我在给自己的每日清单体系铺数据底座。体系一句话:早上 AI 定清单,晚上 AI 复盘,…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/16 0:04:13

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/16 0:04:13

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/16 0:04:13

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/16 0:04:13

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/16 0:04:13

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/16 0:04:13

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/15 1:04:46

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/14 19:35:14

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…