在通过结果传递参数时,将形式参数值分配给实际参数值?

时间:2011-01-28 02:09:38

标签: function reference return parameter-passing

作为标题,就在退货声明之后?

int x = 1;

function F(ref int y) { y  = y + AnotherF(x); }

function AnotherF(result z)
{
   z = null;
   return (-1);
}

F(x); print(x); // prints 0 or null?

1 个答案:

答案 0 :(得分:0)

回答自己:函数AnotherF返回-1。在破坏其记录之前(因此在将控制传递回F之前),z的值被分配回实际参数(y)。在为x分配null之后,F继续评估y = 1 +( - 1)= 0.然后x为0。