标题:实参和形参值的传递
只看楼主
眼圈黑黑
Rank: 2
等 级:论坛游民
帖 子:27
专家分:20
注 册:2010-4-7
结帖率:60%
 问题点数:0 回复次数:5 
实参和形参值的传递
class RefExample
{
    static void Method(ref int i)
    {
        i = 44;
    }
    static void Main()
    {
        int val = 0;
        Method(ref val);
        // val is now 44
    }
}
最近卡在这里了,总理解不了实参和形参传递的机理,希望能得到帮助!
搜索更多相关主题的帖子: void class 
2012-02-23 20:44
guming
Rank: 4
等 级:业余侠客
威 望:5
帖 子:329
专家分:277
注 册:2006-11-9
得分:0 
ref就像架起了一桥梁,用于在方法里把值传回给了val,实质是通过ref把val的内存空间地址传给了方法里的变量i,这样它们两个都指向了同一个内存空间,那么对i的赋值 ,也就是对val的赋值.

[ 本帖最后由 guming 于 2012-2-24 01:23 编辑 ]

不想停留。。。
2012-02-24 01:19
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
有同样的问题,想学习!
2012-02-24 14:35
_迷_
Rank: 2
等 级:论坛游民
帖 子:16
专家分:32
注 册:2012-2-17
得分:0 
加了ref的参数是按引用传递,传统的是引用,也就是同一个地址,所有不管是方法还是调用者所使用的就是同一个变量,也就引起了在方法里改变i的值在外面也跟着改变。
2012-02-24 18:52
xikelele
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-4-22
得分:0 
使用了ref,可将将其等效为引用即可。
2012-02-27 12:44
lgyneng
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2012-2-27
得分:0 
实参传递的是值,形参传递的是地址。
实参传递打个比方:我电脑有一个文件,你用U盘来拷贝我的这个文件,那么拷贝后你把文件放在你的电脑里进行任何的修改,都不会影响到我电脑里这个文件的内容-------它们占用的是两个不同的内存空间(你的电脑和我的电脑).
形参传递打个比方,比如你电脑桌面上有一个txt文件,然后你再创建这个txt文件的快捷方式,接着你对这个快捷方式的txt文件内容做任何修改,那么原来的txt文件内容也会同时被更改--------他们占用的是同一个内存空间(你的电脑).
2012-02-28 13:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-361480-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.384078 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved