01-函数
函数是什么#
是一个工具,为了解决大量类似问题而设计的一串代码,以函数之名,对数据用那一串代码来进行处理,最终将结果返回
如何定义函数#
- 基本语法
函数的返回值类型 函数的名字(函数的形参列表) { 函数的执行体 }
- Tips
- 执行体:详细描述函数之所以能够实现某个特定功能的具体步骤
- 函数内部定义的变量只能在函数内部使用
- 一个函数的功能尽量独立,单一 → 可重用性高
return 表达式#
- 作用:终止被调函数,向主调函数返回表达式的值
- 2 种情况
- 如果函数的返回类型是 void:return;
- 返回类型是 !void:return 表达式;
- 如果 "return 表达式" 和 "函数声名的返回值类型" 不同,最终函数返回值的类型以函数名前的返回值类型为准
- return 和 break 的区别
- return:终止 被调函数
- break:终止 for/which/switch
主函数#
- 一个程序必须有且只有一个"主函数",主函数可以调用普通函数
- 普通函数不能调用主函数,因为 main 函数形参没有规模递减这一说,所以无法实现递归,因为无法实现递归,所以其他函数不能调用 main 函数
- 普通函数之间可以相互调用
- 主函数是程序的入口,也是程序的出口
函数的声明#
- 作用
- 如果函数定义在 main 函数之后,则在执行 main 函数时,若函数体中调用自定义函数的时候,程序会报错
- 在 main 函数定义之前,函数声名可以告诉编译器在 main 函数中出现的
xxx (xxx)
代表的是函数 - 告诉编译器即将出现的若干字母所代表的函数的形参和返回值的具体情况
- 对库函数的声明是通过
#include<库函数所在的文件的名字.h>
来实现
- 函数声明中,形参可以只写形参数据类型,不写形参名。如:
void f(int);
形参和实参#
- 形参
- 出现在函数定义中
- 是在定义函数名和函数体的时候使用的参数,用来接收调用该函数时传递过来的数据
- 实参
- 出现在主调函数中
- 在发生函数调用时,主调函数把实参的值传递给被调函数的形参从而实现主调函数向被调函数的数据传送
变量的作用域#
按作用域分#
全局变量和局部变量命名冲突的问题:
在一个函数内部如果定义的局部变量的名字和全局变量名一样时,局部变量会屏蔽掉全局变量。
按存储方式分#
- 静态变量
- 自动变量
- 寄存器变量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?