Beim Drucken eines Arrays funktioniert die Initialisierung einer ganzen Zahl.C/C++: Warum ist es unmöglich, einen Zeiger in der Schleifeninitialisierung zu deklarieren?
int a[MAX_SIZE] = {1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i <= (MAX_SIZE - 1); i++)
{
printf("%3d",a[i]);
}
Allerdings frage ich mich, warum einen Zeiger auf eine ganze Zahl ("Walker") initialisiert wird nicht funktionieren:
int a[MAX_SIZE] = {1,2,3,4,5,6,7,8,9,10};
for (int *aWalk = a, int *aEnd = a + MAX_SIZE - 1; aWalk <= aEnd; aWalk++)
{
printf("%3d", *aWalk);
}
Bitte wählen Sie eine Sprache. Das heißt, die Anweisung "int * aWalk = a, int * aEnd = a + MAX_SIZE - 1" würde nicht einmal für sich arbeiten, so dass sie auch nicht in einem Loop-Header funktionieren kann. –
'wird nicht funktionieren' ist eine sehr schlechte Problembeschreibung, FWIW. –
Was ist der Wert von 'MAX_SIZE'? –