Kursinhalt
C++ Funktionen
C++ Funktionen
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:
main
#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.
main
#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.
Danke für Ihr Feedback!