形参,实参与函数的理解

首先,咱们看看这俩玩意的定义:

实参(argument):

  全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 

形参(parameter):

全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。

以下面这个经典题目为例子:

用一个函数完成数值对换 

#include 
void myswap(int x, int y) //定义函数myswap
{
int t;
t=x; x=y; y=t;
}
int main()
{
int a=3, b=5;
myswap(a, b); //调用函数myswap
printf(”%d, %d\n”
, a, b);
return 0;
}

 

 尝试过后发现,并不能如期完成任务。

问题出在哪儿呢?

我们可以实参看作皇帝形参看成仆人函数则是大臣;皇帝有着实际的权力,处理政务,可是皇帝也有时候忙不过来,就需要其他大臣协助了,那么皇帝和大臣如何交流呢?那需要一个传话的仆人了。本题中,皇帝告诉仆人:a=3,b=5,让他交给大臣去把这两个对换,仆人把这个信息传递给大臣后,大臣也照着做了,可是大臣没有自己的仆人(没有返回值)把处理后的信息给皇帝,所以最终a和b对于皇帝来说没有变化,只是在大臣看来对换罢了。

由此观之,问题出在函数没有返回值给主函数,可是return只能返回一个值,我们又不可以同时返回a,b应该如何处理?

此时,那便需要一个新的角色——指针 来发挥作用了。

指针官居何位?且听下次瞎掰。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部