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

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/29 2:52:50
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/29 2:52:51
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/29 1:29:30
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/29 1:39:24
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/28 17:20:49
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/29 2:52:53

日新闻

周新闻