Ist es möglich, mehr als ein Inkrementierer/Variable zu haben?
Ja, es ist möglich. Das heißt, das ist vollkommen legal:
// reverse b into a
for (int i = 0, j = n - 1; i < n; i++, j--) {
a[i] = b[j]
}
Was ist/ist nicht möglich, in dem Header einer for
Schleife?
Das ist genau das, was die Grammatik Ihnen sagen wird. Hier ist die Grammatik für eine for
Anweisung in C#:
for-statement:
for(for-initializer_opt; for-condition_opt; for-iterator_opt)
embedded-statement
for-initializer:
local-variable-declaration
statement-expression-list
for-condition:
boolean-expression
for-iterator:
statement-expression-list
statement-expression-list:
statement-expression
statement-expression-list, statement-expression
Beachten Sie, dass sowohl die for-initializer
und die for-iterator
erlauben Verbindung Aussagen über statement-expression-list
. Weitere Einzelheiten finden Sie in §8.8.3 der language specification. Sie werden wahrscheinlich auch in Abschnitt 8.5.1 der Spezifikation nachsehen wollen, was genau local-variable-declaration
beinhaltet (Hinweis: int i = 0, j = n - 1, k = 42
ist legal, aber int i = 0, j = n - 1, long k = 42
ist nicht).
haben Sie die Sprachdefinition betrachten zu lesen? –