我以类似c的语法给出了以下代码,并询问在执行子例程时x的值是什么...
static int x, z;
void f ( int y ) {
x = 0;
if ( y > z ) y = 1;
else y = 3;
};
void main ( ) {
z = 1;
x = 2;
f(x);
};
a。)如果使用按值传递。
b。)如果使用pass-by-reference
c。)如果使用pass-by-value / result。
我分别给出了答案0/3/1,但我不明白这个结果。我知道按值传递意味着值被复制,不应该被改变,但看起来像答案应该是2.我理解为什么参考有效,但不是如何获得价值/结果为1。
我似乎没有得到什么?