C语言编程:理解函数的形式参数和实际参数

需积分: 50 54 下载量 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语言编程。这本书的电子版和配套资源由金沙滩工作室授权免费提供给学习者,但严禁用于商业目的,并且对任何形式的侵权行为,作者和出版社都将采取法律手段保护版权。"