作为标题,就在退货声明之后?
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?
答案 0 :(得分:0)
回答自己:函数AnotherF返回-1。在破坏其记录之前(因此在将控制传递回F之前),z的值被分配回实际参数(y)。在为x分配null之后,F继续评估y = 1 +( - 1)= 0.然后x为0。