Ja.
Es sieht so aus, als gäbe es hier einen Widerspruch:
int-Variable in main() NICHT ändern.int-Array in main() ändern.Es gibt tatsächlich keinen Widerspruch hier. Denken Sie daran, dass ein Array ein Objekt ist. Wenn ein Objekt ein Parameter ist, bekommt die aufgerufene Methode eine Referenz auf das Objekt, nicht eine Kopie des Objekts.
In dem Beispiel, bekommt die zeroElt()
Methode eine Referenz auf ein Arrayobjekt.
Da der Parameter x auf ein Array verweist,
kann die Methode das Array ändern, indem sie x verwendet.
Die Abbildung zeigt dies.
Das ist Call-By-Value,
da wenn die Methode cng.zeroElt(value, 0)
ausgeführt wird, bekommt der Parameter x der Methode
den Wert, der in der Variablen value
enthalten ist,
welcher eine Referenz auf das Array ist.