参数传递方式有哪些


函数的参数传递有三种方式 一、函数中使用:
形参出现在函数定义中 , 在整个函数体内都可以使用 ,  离开该函数则不能使用 。
实参出现在主调函数中 , 进入被调函数后 , 实参变量也不能使用 。  
二、调用
形参变量只有在被调用时才分配内存单元 , 在调用结束时 , 即刻释放所分配的内存单元 。 因此 , 形参只在函数内部有效 。 函数调用结束返回主调用函数后则不能再使用该形参变量 。
实参可以是常量、变量、表达式、函数等 , 无论实参是何种类型的量 , 在进行函数调用时 , 它们都必须有确定的值 , 以便把这些值传送给形参 。 因此应预先用赋值 , 输入等办法使参数获得确定值 。
三、不是指针类型在内存中位置不同:
当形参和实参不是指针类型时 , 在该函数运行时 , 形参和实参是不同的变量 , 他们在内存中位于不同的位置 , 形参将实参的内容复制一份 , 在该函数运行结束的时候形参被释放 , 而实参内容不会改变 。
举例:
【参数传递方式有哪些】1. 比如你定义一个函数void add(int a, int b) , 这里的a和b就是形参 。  
2. 当你进行函数调用的时候 , add(1, 2) , 这里的1和2就是实参 。
请点击输入图片描述
扩展资料
形参的作用是实现主调函数与被调函数之间的联系 , 通常将函数所处理的数据 , 影响函数功能的因素或者函数处理的结果作为形参 。
没有形参的函数在形参表的位置应该写void.main 函数也可以有形参和返回值 , 其形参也称为命令行参数 , 由操作系统在启动程序时初始化 , 其返回值传递给操作系统 。
两者关系:
在一般传值调用的机制中只能把实参传送给形参 , 而不能把形参的值反向地传送给实参 。 因此在函数调用过程中 , 形参值发生改变 , 而实参中的值不会变化 。 而在引用调用的机制当中是将实参引用的地址传递给了形参 , 所以任何发生在形参上的改变实际上也发生在实参变量上 。
参考资料:
百度百科-形参
百度百科-实参

常用的参数传递方式 楼主说的是C++么?
参数传递有三种:
传值(value) , 传址(address) , 和传引用(reference)

传值时子函数(被调用者)复制父函数(调用者)传递的值 , 这样子函数无法改变父函数变量的值

传址时父函数将变量的地址传递给子函数 , 这样子函数可以能过改写地址里的内容改变父函数中的变量

传引用则是一种看起来像传值调用 , 而实际上功能同传址一样的传递方式 。 子函数可以改写父函数的变量值 。
简述什么是形参和实参,参数传递的方式有哪些? 有两种方式:值类型和引用类型在把数据赋给值类型和引用类型的时候 , 两者表现完全不同:

● 在把数据赋给一个值类型时 , 数据存储在堆栈上的变量中 。

● 在把数据赋给一个引用类型时 , 变量中只存储一个引用 , 数据则存储在托管堆上 。

理解堆栈和堆之间的区别是非常重要的 。 堆栈是一个比较小的内存区域 , 进程和线程在其中存储大小固定的数据块 。 例如 , 无论数据的实际值是多少 , 存储整数和小数类型所需要的字节数都不会变化 。 因此这种变量在堆栈中的位置可以高效地确定(当一个过程需要提取某个变量时 , 就必须搜索堆栈 。 如果堆栈包含的变量具有动态的内存大小 , 这种搜索就需要较长的时间) 。

推荐阅读