Heim > Backend-Entwicklung > C++ > Können Sie Variablen unterschiedlichen Typs in einer C-For-Schleifeninitialisierung deklarieren?

Können Sie Variablen unterschiedlichen Typs in einer C-For-Schleifeninitialisierung deklarieren?

Patricia Arquette
Freigeben: 2024-12-17 13:16:25
Original
1092 Leute haben es durchsucht

Can You Declare Variables of Different Types in a C   For Loop Initialization?

Variablen verschiedener Typen in einer For-Schleifeninitialisierung deklarieren

In C ist es nicht direkt möglich, Variablen verschiedener Typen innerhalb der zu deklarieren Initialisierungskörper einer for-Schleife. Dies liegt daran, dass der Schleifeninitialisierungsteil einen einzelnen Ausdruck erwartet, der nur Variablen desselben Typs definieren kann.

Betrachten Sie das folgende Beispiel:

for (int i = 0, j = 0; ...)
{
    // ...
}
Nach dem Login kopieren

Dieser Code definiert zwei ganzzahlige Variablen i korrekt und j. Wenn Sie jedoch versuchen, innerhalb der Initialisierung eine Ganzzahl und ein Zeichen zu deklarieren, führt dies zu einem Kompilierungsfehler:

for (int i = 0, char c = 'a'; ...)
{
    // ...
}
Nach dem Login kopieren

Eine technische Problemumgehung

Allerdings nicht In praktischen Szenarien empfohlen, gibt es eine technische Problemumgehung, um verschiedene Typen innerhalb der for-Schleifeninitialisierung zu deklarieren. Dabei geht es darum, eine einzelne Struktur zu erstellen, die die gewünschten Typen enthält, und diese Struktur dann als Initialisierungsausdruck zu verwenden:

struct MyStruct
{
    int a;
    char b;
};

for (MyStruct s = { 0, 'a' }; s.a < 5; ++s.a)
{
    std::cout << s.a << " " << s.b << std::endl;
}
Nach dem Login kopieren

In diesem Beispiel erstellen wir eine MyStruct mit zwei Mitgliedern, a (eine Ganzzahl) und b ( ein Charakter). Die Schleifeninitialisierung setzt die MyStruct-Instanz s so, dass a gleich 0 und b gleich „a“ ist. Die Schleife wird dann fortgesetzt, solange s.a kleiner als 5 ist.

Das obige ist der detaillierte Inhalt vonKönnen Sie Variablen unterschiedlichen Typs in einer C-For-Schleifeninitialisierung deklarieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage