-2

次のコードのコメントHEREから実行時のスタックを引き出すのを手伝ってくれる人はいますか? 私はこれを試みましたが、それは間違っていると言われ、教授はこれを説明することを拒否しました....誰かが私に例を与えることができれば、別のコードとの比較としてそれを使用するのは簡単です. 具体的には、スタックを正しくフォーマットしていないと思います。

私の試み:

array a initialized with 3 values
integer x = 4;
call method b, passes in array a.
integer i = 14;
array x[0] = 4;
call method e, passes in i - 2 = 12;
calls method f 12 - 4 = 8;
int j = 2;
8 * 2 = 16;
println "16";
println "4 + 0"

public class RuntimeStack
{
  public static void main (String [] args)
  {
  int[] a = new int[3];
  int x = 4;
  b(a);
  System.out.println(a[0] + “ “ + a[1] + “ “ + x);
}
public static void e(int a)
{
f(a-4);
// HERE! }
  public static void b(int [] x)
  {
    int i = 14;
    x[0] = 4;
    e(i-2);
}
  public static void f(int i)
  {
int j = 2;
    System.out.println("i * j = " + (i * j));
  }
} // end class RuntimeStack

どうもありがとうございました!

4

2 に答える 2

1

私の推測では、彼は、スタックに配置された (そしておそらく削除された) 順序でスタック内の値を使用して描画された図を望んでいるでしょう。パラメータのリストと呼び出しなどの戻り情報が必要になるたびにパラメータを渡す2番目のメソッドを呼び出すメソッドがある場合、それは彼らが何を望んでいるかについての私の最良の推測です。

于 2013-08-03T03:13:43.940 に答える
0

中断したところから続行します。

call method e, passes in 12  
call method f, passes in 8  
integer j = 2  
print "i * j = " + 16  
print 4 + " " + 0 + " " + 4
于 2013-08-03T02:34:14.113 に答える