行参和实参的区别 原文说的是c++的 借鉴一下吧
2015-06-11 17:29
741 查看
<strong><span style="font-size:18px;">形参和实参的区别</span></strong>
形参出现在<strong>函数定义</strong>中,在整个函数体内都可以使用, 离开该函数则不能使用。
实参出现在<strong>主调函数中,进入被调函数后,实参变量也不能使用</strong>。
形参和实参的功能是作数据传送。发生函数调用时, <strong>主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送</strong>。
1.形参变量只有在被调用时才分配内存单元,<strong>在调用结束时, 即刻释放所分配的内存单元</strong>。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。
2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。
4.<strong>函数调用中发生的数据传送是单向的</strong>。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
<span style="font-family:arial,宋体,sans-serif;font-size:14px;line-height:24px"></span><pre name="code" id="best-answer-content" class="reply-text mb10" style="margin-top:0px; margin-right:0px; margin-bottom:10px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; font-family:Arial; white-space:pre-wrap; word-wrap:break-word; zoom:1; line-height:22px">5.当形参和实参不是指针类型时,在该函数运行时,<span style="color:#ff0000;"><strong>形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变</strong></span>。 而<span style="color:#ff0000;"><strong>如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身</strong></span>。所以在函数体内部可以改变实参的值。 <pre class="line mt-5 q-content">#include <stdio.h> void main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("Max is %d",c); } int max(int x,int y); int z; z=x>y?x:y; return(z); } 请指出上面这个程序那一部分是形参哪一部分是实参。 解释一下形参和实参的概念
int max(int x,int y); 函数中的x和y是形式参数,简称形参 main()中语句的c=max(a,b); 中的a和b是实际参数,简称实参 形参形参,只是一个形式而已,比如,我们可以把 int max(int x,int y) { int z; z=x>y?x:y; return(z); } 换成: int max(int m,int n) { int z; z=m>n?m:n; return(z); } 主函数不需要改变,仍然可以调用。 形参,是声明函数时,函数的参数。 实参,是指调用函数时,传给函数的参数。
相关文章推荐
- C++形参与实参的区别实例解析
- 用C#的params关键字实现方法形参个数可变示例
- javascript管中窥豹 形参与实参浅析
- c++将引用或者是指针作为函数参数实现实参的运算
- 漫谈C指针:参数的值传递
- C语言函数形参
- 避免复制Vector,定义引用类型
- 乱七八糟(三种求vector元素和、默认实参、)
- 关于C和C++中函数调用时的形参和实参
- 数组形参
- 关于指针作为参数传递的一些探讨
- 每天练练手3.20
- 3.31函数和指针
- 函数和变量小知识
- 解释形参、局部变量和静态局部变量的差别
- 第十七周-项目1-1-体会函数参数传递
- 第十七周项目1-2-三个数排序(指针和引用)
- 形参和实参有何区别
- 作业03
- C++学习笔记(3) 数组