C语言编程:理解函数的形式参数和实际参数
需积分: 50 129 浏览量
更新于2024-08-06
收藏 12.24MB PDF 举报
"函数的形式参数和实际参数在编程中是至关重要的概念,特别是在C语言和51单片机编程中。形式参数(形参)是在函数定义时使用的参数,它们在函数内部起到临时变量的作用,不占用内存空间,直到函数被调用时才分配存储空间。实际参数(实参)则是调用函数时提供的具体值,它们是主调函数中的变量或者表达式,传递给被调用函数以供其内部计算和操作。
在上述示例中,`unsigned char add(unsigned char x, unsigned char y)` 是一个函数声明,`x` 和 `y` 是形参,它们定义了函数接受的输入类型。在`main()`函数中,`add(a, b)` 的调用中,`a` 和 `b` 就是实际参数,它们的值在函数调用时传递给 `add` 函数的形参 `x` 和 `y`。函数执行完毕后,返回的结果被赋值给变量 `c`。
函数调用的过程如下:
1. 当调用 `add(a, b)` 时,`a` 和 `b` 的值被复制并传递给 `add` 函数的形参 `x` 和 `y`。
2. 在 `add` 函数内部,`x` 和 `y` 是独立的变量,它们的值等于调用时实参的值,但并不占用与实参相同的内存位置。
3. 操作 `x` 和 `y`,如 `z = x + y`,计算结果存储在 `z` 中。
4. 函数通过 `return z;` 返回 `z` 的值,此返回值的类型决定了函数的返回类型,这里是 `unsigned char`。
5. 主调函数 `main()` 中,返回值被赋给 `c`,即 `c = add(a, b)`。
函数的返回类型决定了函数执行后的结果可以被赋予何种类型的变量。在51单片机编程中,通常会使用基本数据类型如 `unsigned char` 来定义函数返回值和参数,因为51单片机的内存和处理能力有限。
要注意的是,形参和实参之间的数据传递是单向的,即实参的值传递给形参,形参的改变不会影响实参的原始值。此外,如果函数类型为 `void`,则表示该函数不返回任何值,但在51单片机的C语言编程中,通常每个函数都会有一个返回值,即使是为了返回状态信息或错误代码。
《手把手教你学51单片机-C语言版》是一本由金沙滩工作室宋雪松老师等人编著的教材,它配合了丰富的视频教程、课件和例程源码,旨在帮助初学者掌握51单片机的C语言编程。这本书的电子版和配套资源由金沙滩工作室授权免费提供给学习者,但严禁用于商业目的,并且对任何形式的侵权行为,作者和出版社都将采取法律手段保护版权。"
2022-08-03 上传
2021-01-13 上传
2024-04-16 上传
郝ren
- 粉丝: 57
- 资源: 4046
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建