-2
Warum kann ich nicht Smthng so schreiben?C - while Operator in for Schleife Initialisierer
int i, size;
int *arr;
...
for(i = size - 1, while(arr[i] == 0) i--; i >= 0; i--) { ... }
Warum kann ich nicht Smthng so schreiben?C - while Operator in for Schleife Initialisierer
int i, size;
int *arr;
...
for(i = size - 1, while(arr[i] == 0) i--; i >= 0; i--) { ... }
Dies ist nur keine gültige Syntax in C
Eine Lösung für das, was Sie vielleicht wollen:
int i, size;
int *arr;
...
for(i = size - 1; i >= 0; i--) {
if (arr[i] == 0)
continue;
...
}
Aus dem gleichen Grund, warum Sie nicht eine Menge Dinge schreiben kann - es ist nicht gültige C-Syntax. –
Kurze Antwort - weil die Sprachgrammatik es nicht erlaubt; Die Steuerausdrücke in einer 'for'-Anweisung können keine anderen * Anweisungen * sein. Wie für * warum * die Grammatik so ist, müsstest du Dennis Ritchie fragen, und er ist nicht mehr da. –
Da die Sprache nur * Ausdrücke * und keine Anweisungen erlaubt. –