Dynamic 参数传递方法

Dynamic 参数传递方法,dynamic,language-agnostic,static,parameter-passing,Dynamic,Language Agnostic,Static,Parameter Passing,考试前我需要弄清楚一些事情。你能帮我回答以下问题吗?如果我弄错了,我想修正它,了解真正的答案 谢谢你 int x = 1; int foo (int a) { return a + bar (x) + x; } int bar (int b) { b++; return b * x; } int main () { int x = 2; foo(x); } 以下情况的输出是什么: a)静态范围和传递值。 5::foo->2*bar(x)+x->2+[2(b)*1(全局x)]+1(全局x

考试前我需要弄清楚一些事情。你能帮我回答以下问题吗?如果我弄错了,我想修正它,了解真正的答案

谢谢你

int x = 1; 
int foo (int a) { return a + bar (x) + x; } 
int bar (int b) { b++; return b * x; } 
int main () { int x = 2; foo(x);  }
以下情况的输出是什么:

a)静态范围和传递值。

5::foo->2*bar(x)+x->2+[2(b)*1(全局x)]+1(全局x)

b)静态范围通过引用传递。

8::foo->2*bar(x)+x->2+[2(b)*2(全局x变化)]+2(全局x变化)

c)静态范围传递值结果。

8::foo->2*bar(x)+x->2+[2(b)*2(全局x变化)]+2(全局x变化)

d)动态范围和传递值。

10:foo->2*bar(x)+x->2+[3(b是main的x,它是2,我们将其添加到1)*2(foo x来自main)]+2(foo x来自main)

e)动态范围和参照传递。


15::foo->2*bar(x)+x->2+[3(b是main的x,它是2,我们把它加上1)*3(foo x是main的,因为它的别名是b,所以它也增加了)]+3(foo x是main的)

你认为在各种情况下的输出是什么(你为什么相信这一点的论点)?要想提出好的问题,你需要展示一些自己解决问题的尝试。很抱歉,我忘了添加我的答案。谢谢提醒。