Hallo,
ich habe hier grad den C++ Primer vor mir liegen verstehe das folgende Beispiel nicht
Code:
int ia[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
using int_array = int[4];
typedef int int_array[4];
for (int_array *p = ia; p != ia + 3; ++p)
{
for (int *q = *p; q != *p + 4; ++q)
std::cout << *q << ' ';
}
Der Array war jetzt eigentlich nicht dabei, aber das spielt ja keine Rolle. Genauer gesagt habe ich Probleme mit dem typedef. Ich verstehe, dass beim
Code:
using int_array = int[4];
"int_array" als alias für nen int-Array mit 4 Elementen genutzt wird und dann bei der äußeren for-Schleife unten *p ein Pointer auf die erste "Zeile mit 4 Elementen" von ia ist. Warum wird dann bei
Code:
typedef int int_array[4];
das [4] angegeben wenn int_array doch schon ein alias für int[4] ist. Ich weiß, dass die innere for-Schleife auf die Elemente der jeweiligen Zeile zeigt, aber nicht wie.