【C语言】形式参数(formalparameters)和实际参数(actualparameters)

 2024-02-15 03:06:02  阅读 0

目录

形式参数

函数调用过程中,函数的参数分为形参和实参。

形式参数(形式参数):

形式参数是指函数名后面括号内的变量。 由于形式参数仅在调用函数时才实例化(分配内存单元),因此称为形式参数。

函数调用完成后,形参自动销毁。 因此形式参数仅在函数内有效。

举个简单的例子来帮助大家理解:

下面的代码中,第2行定义函数时,函数名Add的括号里写的x和y称为形式参数,简称形式参数。 事实上,如果Add函数只是定义并没有被调用,那么Add函数的参数x和y只是形式上存在的。 它们不向系统申请内存空间,也不会实际存在于内存中,因此称为形式参数。 形参只会在内存中申请空间,以便存储调用函数时实参传递的值。 这个过程就是形式参数的实例化。

实际参数(实际参数):

调用参数化函数时,函数名后括号内的参数称为“实际参数”,是我们实际传递给函数的参数。 实际参数可以是:常量、变量、表达式、函数等。

无论实参是什么类型的量,在进行函数调用时都必须有确定的值,以便将这些值传递给形参。

我们以上面的代码为例:

上面的代码中,第2行到第7行是Add函数的定义。 有了函数之后,我们调用第17行的Add函数。当我们调用第17行的Add函数时,传递给函数的参数a和b称为实参,简称实参。 实际参数是实际传递给函数的参数。

实参与形参的关系:

虽然我们提到形参和实参之间是有联系的,即实参传递给形参,但是形参和实参有各自独立的内存空间。 通过调试可以观察到这种现象。 请看下面的代码和调试结果:

当我们运行程序并输入a和b的值分别为10和20时,a和b(实参)的值通过调用添加功能。 通过监控窗口我们可以看到x=10,y=20,a=10,b=20,即x,y收到了a,b的值,但是通过监控a,b和x,y的地址为 &a , &b 和 &x, &y 可以看出形参和实参的地址是不一样的,即形参和实参有各自独立的内存空间。 当实参传递给形参时,形参是实参的副本。 临时复制,修改形参不会影响实参。

标签: 函数 参数 调用

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码