cde,def
这里你根本不用去考虑一开始的a="abc",即使不是指针,结果也会如此:
因为Console.Write("{0},{1}",a,b);这句是在函数中执行的,只会输出在函数中定义到的值.

解决方案 »

  1.   

    To:  Cry_Out(东北) 结果是def,def,大哥,你运行看看
      

  2.   

    这个没什么好奇怪的,ref修饰与out 修饰,本身就是将变量的值改变,后面的F函数的第二个参数传进来的时候将a的值改变了
      

  3.   

    对,不好意思,没看清楚源代码.enzhiyiqiu(蜀道消程)说得很对,以最后操作该地址的值为准,即b="def"这句是最后操作a的这个地址的.所以最后的值为b="def",即使你不是在函数中执行Console.Write("{0},{1}",a,b);
    而是在main中执行,也会这种结果,以前用C语言时应该很有体会的.
      

  4.   

    看起来b="def",其实是对指向a的地址赋值.就是这么简单,你不要想得太复杂了.
      

  5.   

    记住加ref 是传递地址,不是传递值.所以
                a="cde";
                b="def";
    都是操作同一地址.所以结果量显而易见的.
    唉!汗.........................................