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 du versuchst, 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) lässt sich hier nicht kompilieren, weil arr tatsächlich ein Zeiger und kein Array ist und ein Zeiger die Größe des Arrays nicht speichert. Zeiger lernst du im nächsten Kurs kennen.
Deshalb müssen wir beim Übergeben von Arrays an Funktionen normalerweise die Größe als separaten Parameter übergeben:
void processArray(int arr[], int size) {
// Jetzt können wir mithilfe des Parameters size sicher mit dem Array arbeiten
}So rufst du die Funktion auf:
int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);Außerdem ist es nicht möglich, in einer Funktion ein Array zurückzugeben:
int[] processArray(int arr[]) {
return arr;
}Das ist nicht zulässig. Verwende stattdessen die Syntax *:
int* processArray(int arr[]) {
return arr;
}
int* newArr = processArray(arr);Die Sternsyntax (*) bezieht sich auf Zeiger, die im nächsten Kurs besprochen werden.
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Übe selbstständig: Online-C++-Compiler