Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Statisches Array als Argument der Funktion Übergeben | Funktionsargumente Spezifikation
C++ Funktionen
course content

Kursinhalt

C++ Funktionen

C++ Funktionen

1. Einführung
2. Funktionsargumente Spezifikation
3. Spezifikation von Funktionsrückgabewerten
4. Einige Fortgeschrittene Themen

book
Statisches Array als Argument der Funktion Übergeben

In C++ ist ein statisches Array ein Array, dessen Größe zur Kompilierungszeit festgelegt wird und während der Programmausführung konstant bleibt.

Wie Werte mit einfachen Datentypen können wir Arrays als Funktionsargumente übergeben!

Übergabe eines eindimensionalen Arrays als Argument

Um ein eindimensionales Array als Argument der Funktion zu übergeben, müssen wir nach dem Variablennamen in der Funktionssignatur []-Klammern verwenden:

cpp

main

copy
12345678910111213141516
#include <iostream> // Function to process a 1-dimensional static array void processArray(int arr[], const int size) { for (int i = 0; i < size; ++i) std::cout << arr[i] << " "; // Print each element of the array std::cout << std::endl; } int main() { const int SIZE = 5; int oneDimArray[SIZE] = {1, 2, 3, 4, 5}; // Initialize a 1-dimensional static array std::cout << "Original Array: "; processArray(oneDimArray, SIZE); // Call the function to process the array }

Übergabe eines 2-dimensionalen Arrays als Argument

Das Übergeben eines 2-dimensionalen Arrays ist der Übergabe eines eindimensionalen Arrays sehr ähnlich: Wir müssen nach dem Variablennamen [][] verwenden.

Aber es gibt einen wichtigen Unterschied: In C++ können Sie ein 2D-Array nicht direkt mit der Syntax datatype arrayName[][] als Funktionsargument übergeben.

Wenn Sie ein 2D-Array an eine Funktion übergeben, müssen Sie die Größe von mindestens einer Array-Dimension innerhalb der [][]-Klammern angeben. Dies liegt daran, dass C++ die Größe der Dimension zum Berechnen der Speicheroffsets beim korrekten Zugriff auf die Elemente benötigt.

cpp

main

copy
1234567891011121314151617181920212223
#include <iostream> // Function to process a 2D array with a specific number of rows void processMatrix(int matrix[][3], const int rows) { // Iterate through each row for (int i = 0; i < rows; ++i) { // Iterate through each column (assuming 3 columns in this case) for (int j = 0; j < 3; ++j) { std::cout << matrix[i][j] << " "; // Print each element of the matrix } std::cout << std::endl; // Move to the next line after processing each row } } int main() { const int ROWS = 2; // Number of rows in the 2D array int twoDimArray[ROWS][3] = {{1, 2, 3}, {4, 5, 6}}; // Initialize a 2D array std::cout << "Original Matrix:" << std::endl; processMatrix(twoDimArray, ROWS); // Call the function to process the matrix, passing the number of rows }

Da wir mindestens eine der Array-Dimensionen angeben müssen (es spielt keine Rolle, welche), kann die Signatur dieser Funktion auch folgendermaßen aussehen:

Geben Sie nur die Anzahl der Zeilen an

oder

Geben Sie sowohl die Anzahl der Zeilen als auch der Spalten an

Wenn wir die Funktion innerhalb des main()-Blocks aufrufen, verwenden wir den Namen eines Arrays als Argument, ohne zusätzliche Operatoren.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4
We're sorry to hear that something went wrong. What happened?
some-alt