CH03关于形参与实参的几点说明
来源:互联网 发布:怎么删除mac导入照片 编辑:程序博客网 时间:2024/05/08 08:31
1.形参与实参的区别与联系
(1)形参:在定义方法(函数)中指定的参数就是形参(即形参出现在主函数外部),只有在调用方法时才给它们分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
(2)实参:在调用方法(函数)中指定的参数就是实参(即实参出现在主函数内部),实参可以是常量、变量、表达式等,但要求它们有确定的值,在调用方法时将实参的值赋给形参。在内存中,实参单元和形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留原值。
(2)实参:在调用方法(函数)中指定的参数就是实参(即实参出现在主函数内部),实参可以是常量、变量、表达式等,但要求它们有确定的值,在调用方法时将实参的值赋给形参。在内存中,实参单元和形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留原值。
(3)实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。
(4)函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
(4)函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。
【不解】当实参是数组名或对象名时,实参传递给形参的是地址。若实参是数组名,则调用函数将实参数组的起始地址传递给被调用函数形参的临时变量单元,而不是传递实参数组元素的值。此时,相应的形参可以是形参数组名。在这种传递方法下,被调用函数执行时,形参通过实参传递来的实参数组的起始地址和下标增量,直接去存取相应的数组元素,故形参值的变化实际上是对调用函数的实参数组元素值的改变。
若实参是对象名时,则调用函数将实参对象所指向单元的地址传递给被调用函数形参的临时变量存储单元。此时,相应的形参必须是相同的对象类型。在被调用函数执行时,也是直接去访问相应的单元,形参的变化直接改变调用函数实参相应的单元。
因此,当实参是数组名、对象名时,实参与形参间的传递是双向传递,称“地址的传递”。
2.参数传递机制——C#中方法的参数可以有以下4种类型
若实参是对象名时,则调用函数将实参对象所指向单元的地址传递给被调用函数形参的临时变量存储单元。此时,相应的形参必须是相同的对象类型。在被调用函数执行时,也是直接去访问相应的单元,形参的变化直接改变调用函数实参相应的单元。
因此,当实参是数组名、对象名时,实参与形参间的传递是双向传递,称“地址的传递”。
2.参数传递机制——C#中方法的参数可以有以下4种类型
(1)值参数(ValueParameter):声明时不带任何修饰符的参数
调用方法时,实参变量对形参变量的数据传递是“传值”,即将实参的值赋给形参。需要注意的是,当参数为值类型时与参数为引用类型时,它们所传递的内容是不一样的。示例:
()
()
()
- CH03关于形参与实参的几点说明
- Java的形参与实参
- 形参与实参的区别
- 形参与实参的区别
- 形参与实参的纠葛
- 形参与实参的区别。
- 形参与实参的区别
- 关于引用数据类型的形参与实参讨论
- 函数的形参与实参的关系
- C语言----函数的形参与实参
- 形参与实参之间的值传递
- C++ 形参与实参的传递
- 函数的调用:形参与实参
- 1.4a函数的形参与实参
- java中形参与实参的区别
- 函数形参与实参的一些总结
- 形参与实参
- 形参与实参
- [评论随笔]明朝后期的中缅战争——此役之后关系中国西南版图
- SQL 日期转换
- c#文件读写
- 无法打开物理文件 ".mdf"。操作系统错误 5:"5(拒绝访问。)
- linux下如何卸载jdk
- CH03关于形参与实参的几点说明
- 分布式搜索elasticsearch java API 之(八)------使用More like this实现基于内容的推荐
- 开源框架SVN地址
- 小错排错
- hdu 4300 Clairewd’s message
- android获取手机的当前OS版本。sdk版本
- 关键字super
- 杭电ACM 2051 Bitset
- sql server 查看表的死锁和Kill 死锁进程