Maison >développement back-end >C++ >Pouvez-vous déclarer des variables de différents types dans une initialisation de boucle C For ?

Pouvez-vous déclarer des variables de différents types dans une initialisation de boucle C For ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-17 13:16:251071parcourir

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

Déclaration de variables de différents types dans une initialisation de boucle For

En C , il n'est pas directement possible de déclarer des variables de différents types dans le corps d’initialisation d’une boucle for. En effet, la partie d'initialisation de la boucle attend une seule expression, qui ne peut définir que des variables du même type.

Considérez l'exemple suivant :

for (int i = 0, j = 0; ...)
{
    // ...
}

Ce code définit correctement deux variables entières i et j. Cependant, si vous tentez de déclarer un entier et un caractère lors de l'initialisation, cela entraînera une erreur de compilation :

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

Une solution technique

Bien que ce ne soit pas le cas recommandé dans des scénarios pratiques, il existe une solution technique pour déclarer différents types dans l'initialisation de la boucle for. Cela implique de créer une seule structure contenant les types souhaités, puis d'utiliser cette structure comme expression d'initialisation :

struct MyStruct
{
    int a;
    char b;
};

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

Dans cet exemple, nous créons une MyStruct avec deux membres, a (un entier) et b ( un personnage). L'initialisation de la boucle définit l'instance MyStruct s pour qu'elle ait a égal à 0 et b égal à « a ». La boucle continue ensuite tant que s.a est inférieur à 5.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn