黑马程序员技术交流社区
标题:
在传参时,实参和形参怎么调用,是如何实现的
[打印本页]
作者:
shangxin
时间:
2014-3-22 10:45
标题:
在传参时,实参和形参怎么调用,是如何实现的
本帖最后由 shangxin 于 2014-3-24 10:23 编辑
在传参时,实参和形参怎么调用,是如何实现的
作者:
百川
时间:
2014-3-22 11:12
这个视频里面有,在不使用任何关键字的时候,会首先在栈中开辟一块内存,然后形参将实参复制一份。在方法中进行运算。所以方法中改变参数值是,程序返回调用方时,调用方的参数不会发生改变。
ref关键字传递参数是按地址传递,调用方和方法使用相同的内存单元,所以如果方法中如果改变参数值,则当程序返回调用方的时候,调用方的参数值已经改变。
out和ref关键字的不同在:于使用ref关键字时,要求在使用前必须赋值,而方法中可以赋值也可以不付值。而使用out关键字时使用前可以不赋值,而调用方法返回之前必须赋值。普通传参在使用前必须赋值,但是在方法中赋值并不改变方法调用前的值。
作者:
贰的23次方
时间:
2014-3-22 11:20
C#中有三种传递方式
1.单向值传递(用于将实际参数拷贝一份给形参,向函数内部传值,函数返回时,形式参数被回收)
2.用ref关键字传递(用于双向传递,类似于C++中的双向指针,形参与实参互相指,使用之前先赋值)
3.用out关键字传递(用于被调函数向调用者传值,单向,形参指向实参,调用者可以不给实参赋值,但是函数返回前形参必须必须赋值)
作者:
zou5268237
时间:
2014-3-22 12:52
形参:在定义函数中指定的参数就是形参,在未出现函数调用时,他们并不占内存中的存储单元,只有在发生函数调用时,函数中的形参才被分配内存单元。在调用结束后,形参所占的内存单元也被释放。
实参:实参可以是常量、变量和表达式,但要求有确定的值。在调用时将实参的值赋给形参。在内存中,实参单元和形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留原值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2