02. Felder
Allgemeines
Ein Feld wird auch Array genannt. Streng genommen sind diese keine Funktion die C++ ist, sondern C. Intern ist ein Array lediglich eine Sequenz von Objekten desselben Typs direkt hintereinander im Speicher allokiert.
Syntax
Einen Array initialisieren:
// Initialisierung eines Arrays
char chArray[10];
// Zugriff auf Elemente (lesend)
char *pch = chArray; // Evaluates to a pointer to the first element.
char ch = chArray[0]; // Evaluates to the value of the first element.
ch = chArray[3]; // Evaluates to the value of the fourth element.
// Zugriff auf Elemente (schreibend)
chArray[5] = 'a';
Mehrdimensionale Felder
Da ein Feld lediglich eine Sequenz gleicher Objekte ist, kann ein Feld somit auch selbst als Elemente Felder haben. Diese Verschachtelung ist theoretisch endlos möglich. Im folgenden ein paar Beispiele zur Erläuterung:
// Initialisierung einiger Arrays
int i1[5][7];
int i2[10][2][5];
// Zugriff auf Elemente (lesend)
// Bsp. von: https://docs.microsoft.com/de-de/cpp/cpp/arrays-cpp?view=vs-2019#multidimensional-arrays
// using_arrays_2.cpp
// compile with: /EHsc /W1
#include <iostream>
using namespace std;
int main() {
double multi[4][4][3]; // Declare the array.
double (*p2multi)[3];
double (*p1multi);
cout << multi[3][2][2] << "\n"; // C4700 Use three subscripts.
p2multi = multi[3]; // Make p2multi point to
// fourth "plane" of multi.
p1multi = multi[3][2]; // Make p1multi point to
// fourth plane, third row
// of multi.
}
// Zugriff auf Elemente (schreibend)
multi[2][3] = 5.3;
Weiterführendes
In C++ wird nicht empfohlen diese C-Style Arrays zu benutzen. Stattdessen verwendet lieber std::vector
oder
std::array
.
Weiterführende Links und Quellen für diese Seite: