In C stellt sich die Frage, ob es möglich ist, Variablen verschiedener Typen im Initialisierungskörper von a zu deklarieren for-Schleife. Betrachten Sie den folgenden Code:
for(int i=0, j=0 ...
Dies initialisiert zwei ganzzahlige Variablen (i und j). Ist es möglich, stattdessen ein int und ein char in diesem Initialisierungskörper zu definieren?
Technisch gesehen gibt es einen Workaround, wenn auch unkonventionell:
for(struct { int a; char b; } s = { 0, 'a' } ; s.a < 5 ; ++s.a) { std::cout << s.a << " " << s.b << std::endl; }
Hier definieren wir eine Struktur, die sowohl ein int als auch ein char enthält. Die for-Schleife initialisiert eine Instanz dieser Struktur und erhöht dann das int-Mitglied innerhalb des Schleifenkörpers.
Obwohl diese Problemumgehung die technischen Anforderungen erfüllt, ist es erwähnenswert, dass von diesem Muster aufgrund seiner potenziellen Verwirrung generell abgeraten wird und mangelnde Klarheit im Vergleich zur Verwendung separater Variablen.
Das obige ist der detaillierte Inhalt vonKönnen Sie Variablen unterschiedlichen Typs in der Initialisierung einer C-For-Schleife deklarieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!