使用静态变量寻求关于传值/引用结果的解释

时间:2017-04-25 04:14:34

标签: c pass-by-reference pass-by-value

我以类似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。

我似乎没有得到什么?

0 个答案:

没有答案