Arrays und Funktionen
Teil des Abschnitts Grundlagen der C++-Journey von Coddy — Lektion 62 von 74.
Arrays können nicht direkt als vollständige Arrays an Funktionen übergeben werden. Wenn Sie versuchen, ein Array an eine Funktion zu übergeben, „zerfällt“ es in einen Zeiger auf sein erstes Element.
Zum Beispiel:
int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
int size = std::size(arr);
}std::size(arr) liefert dir nicht die tatsächliche Array-Größe. arr ist hier tatsächlich ein Pointer, kein Array. Pointer werden im nächsten Kurs behandelt.
Aus diesem Grund müssen wir bei der Übergabe von Arrays an Funktionen normalerweise die Größe als separaten Parameter übergeben:
void processArray(int arr[], int size) {
// Jetzt können wir mit dem Array unter Verwendung des Größenparameters sicher arbeiten
}So rufen Sie die Funktion auf:
int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);Zudem ist es nicht möglich, ein Array in einer Funktion zurückzugeben:
int[] processArray(int arr[]) {
return arr;
}Das ist unzulässig. Stattdessen sollten Sie die *-Syntax verwenden:
int* processArray(int arr[]) {
return arr;
}
int* newArr = processArray(arr);Die Sternchen-Syntax (*) bezieht sich auf Pointer, die im nächsten Kurs besprochen werden.
Spickzettel
Arrays können nicht direkt an Funktionen übergeben werden – sie „zerfallen“ (decay) in Zeiger auf ihr erstes Element.
Wenn Sie Arrays an Funktionen übergeben, müssen Sie die Größe als separaten Parameter übergeben:
void processArray(int arr[], int size) {
// Mit dem Array unter Verwendung des size-Parameters arbeiten
}
int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);Arrays können nicht direkt von Funktionen zurückgegeben werden. Verwenden Sie stattdessen die Zeiger-Syntax:
int* processArray(int arr[]) {
return arr;
}
int* newArr = processArray(arr);Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorInkrement/DekrementPost-Inkrement/DekrementArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Eingabe/Ausgabe Grundlagen
cout-Anweisungcin-AnweisungString-EingabeWiederholung - Bis 120Wiederholung - Wahr oder Falsch3Variablen Teil 2
TypdeklarationNamenskonventionenWiederholung – Variablen initialisierenType Casting Teil 1Type Casting Teil 26Entscheidungsfindung
If-AnweisungIf - ElseSwitch-AnweisungBedingter OperatorWiederholung - If ElseVerschachtelte If - Else