Hey!
Hab hier folgende Aufgabe und wollte euch mal fragen, ob das so richtig ist?
Betrachten Sie das untenstehende Programmfragment. Es deklariert und initialisiert eine ganzzahlige Variable n und drei Felder von ganzen Zahlen a, b, c.
Gehen Sie den Programmtext Zeile für Zeile durch und Sie in das nebenstehende Diagramm ein, wie die einzelnen Speicherzellen im Laufe des Programms belegt und geändert werden.
Ich hab meine Lösung als Kommentar nach den jeweiligen Zeilen dahinter geschrieben.
[HIGHLIGHT="Java"]
int[] a;
a = new int[4]; // a:= 4 [0]:=1 [1]:=2 [2]:=3 [3]:=4
for (int i=0; i<a.length; i++) {
a = i;
}
int n = a.length - 1; // n:=3
int [] b;
b = new int[n]; // b:=3 [0]:=11 [1]:=12 [2]:=13
for (int i=0; i<b.length; i++) {
b = a + 10;
}
int[] c = new int[b.length]; // c:=3 [0]:=11 [1]:=12 [2]:=13
c = b;
[/HIGHLIGHT]
Gruß
Hab hier folgende Aufgabe und wollte euch mal fragen, ob das so richtig ist?
Betrachten Sie das untenstehende Programmfragment. Es deklariert und initialisiert eine ganzzahlige Variable n und drei Felder von ganzen Zahlen a, b, c.
Gehen Sie den Programmtext Zeile für Zeile durch und Sie in das nebenstehende Diagramm ein, wie die einzelnen Speicherzellen im Laufe des Programms belegt und geändert werden.
Ich hab meine Lösung als Kommentar nach den jeweiligen Zeilen dahinter geschrieben.
[HIGHLIGHT="Java"]
int[] a;
a = new int[4]; // a:= 4 [0]:=1 [1]:=2 [2]:=3 [3]:=4
for (int i=0; i<a.length; i++) {
a = i;
}
int n = a.length - 1; // n:=3
int [] b;
b = new int[n]; // b:=3 [0]:=11 [1]:=12 [2]:=13
for (int i=0; i<b.length; i++) {
b = a + 10;
}
int[] c = new int[b.length]; // c:=3 [0]:=11 [1]:=12 [2]:=13
c = b;
[/HIGHLIGHT]
Gruß