Gewusst wie: übergeben eines Arrays als Funktions-argument in java?
#include<stdio.h>
void fun(int a[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
int main()
{
int arr[]={1,2,3,4,5,6};
fun(arr+2,3);
return 0;
}
Ausgabe: 3 4 5
Das array ab der 3. element übergeben wurde hier zum Spaß() in C.
Wie auch in JAVA, da gibt es keine Zeiger in JAVA?
In Reaktion auf einen Kommentar unten, ich dachte, ich fügen Sie die details von dem, was ich wirklich versuche zu tun, wie es zu lang für den Kommentar-Abschnitt. Ich brauche nur den Zugriff auf einen Abschnitt eines Arrays rekursiv. Eigentlich bin ich versucht zu finden, "median von zwei sortierten arrays durch Vergleich der Mediane der beiden arrays" unter Verwendung des folgenden Algorithmus :
1) Berechne die Mittelpunkte m1 und m2 die Eingabe-arrays ar1[]
und ar2[] bzw..
2) Wenn m1 und m2 beide gleich sind, dann sind wir fertig.
return m1 (oder m2)
3), Falls m1 größer ist als m2, dann ist der median ist in einem
der unterhalb von zwei subarrays.
a) Vom ersten element ar1 m1 (ar1[0...|n/2|])
b) Von m2 auf das Letzte element von ar2 (ar2[|n/2|...n-1])
4) Wenn m2 größer als m1 ist, dann median ist in einem
der unterhalb von zwei subarrays.
a) Von m1 bis Letzte element ar1 (ar1[|n/2|...n-1])
b) Aus dem ersten element von ar2 zu m2 (ar2[0...|n/2|])
5) Wiederholen Sie den obigen Vorgang, bis die Größe der beiden subarrays
wird 2.
6) Wenn die Größe der beiden arrays 2 ist, dann verwenden Sie die folgende Formel zu bekommen
der median angegeben.
Median = (max(ar1[0], ar2[0]) + min(ar1[1], ar2[1]))/2
- Sie können es nicht, wirklich. Sie könnten
fun
nehmenoffset
argument, wenn. - Ist Ihre Absicht zu ändern, ein Teilgebiet des ursprünglichen Arrays oder machen Sie eine Marke neues array?
- Ich brauche nur den Zugriff auf einen Abschnitt eines Arrays rekursiv. Eigentlich war ich versucht zu finden, "median von zwei sortierten arrays durch Vergleich der Mediane der beiden arrays" unter Verwendung des folgenden Algorithmus :
- Bitte überprüfen Sie die bearbeitete Frage, wie es zu lang zum schreiben hier.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht ändern der array, können Sie eine Kopie einer Palette mit
- Arrays.copyOfRange(int\[\] original, int from, int to)
:import java.util.Arrays;
Einfachste Weg ist die übergabe der start-und end-Indizes der Spaß Methode.
Antwort: 3 4 5
Weil der pointer kann dazu führen, dass einige schwerwiegende Fehler oder Sicherheitslücken in Ihrem Programm, in java können Sie nicht manuell Bearbeiten, Zeiger, als das, was Sie können, in C. So weit ich denken kann, haben Sie, um eine Kopie davon. Sie können entweder mit den Methoden von Arrays Klasse von java, oder Sie können schreiben Sie Ihren eigenen code zu tun.