形参和实参


1、概念

形参

全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该

函数时传递的参数。


形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数

功能的因素或者函数处理的结果作为形参。没有形参的函数在形参表的位置应该写int

 main(void) 函数也

可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返

回值传递给操作系统。


实参

实参,actual parameters,全称为"实际参数"是在调用时传递给函数的参数,即传递给

被调用函数的值。

实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用

时,它们都必须具有确定的值,以便把这些值传送给形参。 因此应预先用赋值,输入等

办法使实参获得确定值。

实参类型

实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用

时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等

办法使实参获得确定值。


2、形参和实参的特点

(1)形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存

单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形

参变量。


(2)实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数

调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等

办法使参数获得确定值。


(3)实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错

误。


(4)在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给

实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用

的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发

生在实参变量上。


3、实参和形参的区别编辑

空白或占位符

(1)函数的形参列于函数声明中,在函数定义的函数体内使用。当函数调用时,形参

(任何种类的)是一类将被填充的空白或是占位符。


用来填充形参

(2)实参是用来填充形参的。当函数被调用时,形参列在函数名后面的括号里。执行函

数调用时,实参被传递给形参。


传值调用和引用调用

(3)传值调用和引用调用指的是用于参数传递过程中的一种机制。传值调用中,只使用

了实参的值。传值调用机制里,形参是一个局部变量,其初始值为相应实参的值。在引用

调用机制里,将实参的地址传递给形参,从表面上看是以实参变量取代形参,因此任何发

生在形参上的改变实际上都发生在实参变量上。


4、形参和实参的例子

[cpp]   view plain  copy
  1. #include "stdio.h"  
  2. int max_2 (int x,int y)   
  3. {  
  4. if (x>y) return x;  
  5. else return y;  
  6. }  
  7. int max_3(int m,int n,int h)   
  8. {  
  9. int max_2(int x,int y);  
  10. int max =max_2(m,n);  
  11. max=max_2(max,h);  
  12. return max;  
  13. }  
  14. int main()  
  15. {  
  16. int a,d,c,max;  
  17.              //定义函数   
  18. int max_3 (int m,int n,int h);         //声明    
  19. printf ("数之间用‘,’隔开\n");  
  20. scanf ("%d,%d,%d",&a,&d,&c);              //输入函数   
  21.     
  22. max=max_3(a,d,c)  ;                 //调用函数   
  23. printf ("max=%d\n",max);  
  24. return 0;  
  25. }  

其中自定义函数中x,y是形参,而main函数中a则是实参


5、在函数调用中发生的数据传送编辑

函数调用中发生的数据传送是单向的,即只能把实参的值传给形参,而不能把形参的值传

给实参。因此,在函数调用的过程中,形参的值可以改变,而实参的值则不会变化。


  • 21
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值