Array []
Dieser Teil von ManderC ist noch in Bearbeitung
Aggregate initialization, Difference Pointer/Array, commutative expression 5[abcdef], row-major
Array-Klammern [] Im Zusammenhang mit __RESTRICT in Visual-C nicht verwendbar. Ein Array fasst sehr viele gleich geartete Variablen zusammen und ordnet sie mit einem Index durchnummeriert sequentiell hintereinander. Die einzelnen Werte werden hierbei alsElementebezeichnet.
In einem Array besitzen alle Elemente denselben Typ und haben somit dieselbe Grösse. Ein Array mit einer Million float-Elementen benötigt somit 1000000 * 4 Bytes an Speicherplatz. Die einzelnen Elemente können mittels des Array-Element-Operators angesprochen werden. In C und C++ wird mit dem Index 0 (Null) zu zählen begonnen.
Ein Array wird ebenfalls aufsteigend abgespeichert. Definiert wird es durch die Adresse des ersten Elements (an der tiefsten Adresse) und dem index, welcher mit der Grösse eines Elements multipliziert wird:
int a[5]: 0x00001000 + 0 * 0x04 = 0x00001000: a[0]
0x00001000 + 1 * 0x04 = 0x00001004: a[1]
0x00001000 + 2 * 0x04 = 0x00001008: a[2]
0x00001000 + 3 * 0x04 = 0x0000100c: a[3]
0x00001000 + 4 * 0x04 = 0x00001010: a[4]
Bei Mehrdimensionalen Arrays wird je nach Programmiersprache entweder Zeilen- oder Kolonnen-Vorrangig adressiert:
int Beispiel[Anzx][Anzy]; Das Element Beispiel[x][y] wird folgendermassen adressiert: Zeilen-Vorrangig: start + (y * Anzx + x) * 4 Kolonnen-Vorrangig: start + x * Anzy * 4 + y * 4