Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Übergeben eines Statischen Arrays als Argument an die Funktion | Funktionsargumente Spezifikation
C++ Funktionen

bookÜbergeben eines Statischen Arrays als Argument an die Funktion

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

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

Übergabe eines eindimensionalen Arrays als Argument

Um ein eindimensionales Array als Argument einer Funktion zu übergeben, müssen im Funktionskopf nach dem Variablennamen []-Klammern verwendet werden:

main.cpp

main.cpp

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 zweidimensionalen Arrays als Argument

Die Übergabe eines zweidimensionalen Arrays ähnelt der Übergabe eines eindimensionalen Arrays: Nach dem Variablennamen wird [][] verwendet.

Es gibt jedoch einen wichtigen Unterschied: In C++ kann ein zweidimensionales Array nicht direkt mit der Syntax datatype arrayName[][] als Funktionsargument übergeben werden.

Beim Übergeben eines zweidimensionalen Arrays an eine Funktion muss die Größe von mindestens einer Array-Dimension innerhalb der [][]-Klammern angegeben werden. Dies ist erforderlich, da C++ die Größe der Dimension kennen muss, um beim Zugriff auf die Array-Elemente die Speicheradressen korrekt zu berechnen.

main.cpp

main.cpp

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 mindestens eine der Array-Dimensionen angegeben werden muss (es spielt keine Rolle, welche), kann die Signatur dieser Funktion auch wie folgt aussehen:

Nur die Anzahl der Zeilen angeben

oder

Sowohl die Anzahl der Zeilen als auch der Spalten angeben

Beim Aufruf der Funktion im Block main() wird der Name eines Arrays als Argument ohne zusätzliche Operatoren verwendet.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 5

bookÜbergeben eines Statischen Arrays als Argument an die Funktion

Swipe um das Menü anzuzeigen

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

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

Übergabe eines eindimensionalen Arrays als Argument

Um ein eindimensionales Array als Argument einer Funktion zu übergeben, müssen im Funktionskopf nach dem Variablennamen []-Klammern verwendet werden:

main.cpp

main.cpp

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 zweidimensionalen Arrays als Argument

Die Übergabe eines zweidimensionalen Arrays ähnelt der Übergabe eines eindimensionalen Arrays: Nach dem Variablennamen wird [][] verwendet.

Es gibt jedoch einen wichtigen Unterschied: In C++ kann ein zweidimensionales Array nicht direkt mit der Syntax datatype arrayName[][] als Funktionsargument übergeben werden.

Beim Übergeben eines zweidimensionalen Arrays an eine Funktion muss die Größe von mindestens einer Array-Dimension innerhalb der [][]-Klammern angegeben werden. Dies ist erforderlich, da C++ die Größe der Dimension kennen muss, um beim Zugriff auf die Array-Elemente die Speicheradressen korrekt zu berechnen.

main.cpp

main.cpp

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 mindestens eine der Array-Dimensionen angegeben werden muss (es spielt keine Rolle, welche), kann die Signatur dieser Funktion auch wie folgt aussehen:

Nur die Anzahl der Zeilen angeben

oder

Sowohl die Anzahl der Zeilen als auch der Spalten angeben

Beim Aufruf der Funktion im Block main() wird der Name eines Arrays als Argument ohne zusätzliche Operatoren verwendet.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4
some-alt