Definition mehrerer Variablen in "for" nicht möglich?
-
Also, bisher dachte ich immer, dass folgendes erlaubt ist:
for(int l=0, int k=0; l<10, k<10; ++l, ++k) { ; }Also dass man mehrere Variablen in einer for-Schleife definieren/deklarieren kann.
Aber zumindestens VS2008 meldet mir folgende Fehler:error C2062: 'int'-Typ unerwartet
error C2065: 'k': nichtdeklarierter Bezeichner
error C2065: 'k': nichtdeklarierter Bezeichner
error C2143: Syntaxfehler: Es fehlt ';' vor ')'
error C2143: Syntaxfehler: Es fehlt ';' vor ')'Folgendes geht allerdings wieder:
int k; for(int l=0, k=0; l<10, k<10; ++l, ++k) { ; }Sprich: man kann nur maximal 1 Variable definieren...
Weiß evtl. jemand was dazu?

-
Du kannst so viele Variablen definieren, wie du möchtest - solange sie vom selben Typ sind:
for( int l( 0 ), k( 0 ); l < 10, k < 10; ++l, ++k ) /* ... */cheers, Swordfish
-
In deinem zweiten Beispiel werden auch zwei Variablen deklariert. Die äußere Deklaration von k wird durch die innere überdeckt. Das erste Feld im for-Schleifenkopf kann eine Anweisung oder eine Deklaration sein. Daraus folgt, dass du soviele Variablen dort deklarieren kannst, wie du willst -- solange sie alle den gleichen Basistyp haben. Verschiedene Basistypen sind nicht möglich.
Das sollte z.B. gehen, auch wenn es nicht sonderlich sinnvoll ist:
for (char c = 'A', *p = "Hallo", (*f)(); ...)
-
ah, ok, danke

-
l<10, k<10
WTF?
Das "l<10" kannste gleich weglassen, tut ja eh nix.
"," ist halt nicht gleichbedeutend mit "&&"...
-
f*ck, nichtmal bemerkt *schäm*

cheers, Swordfish
-
ganz ehrlich: ich weiß nicht, warum ich das da hingeschrieben habe^^
meinte natürlich &&