Ü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
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
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.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 5
Ü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
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
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.
Danke für Ihr Feedback!