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

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

Barbara Streisand
Barbara Streisandoriginal
2024-12-22 08:36:111049parcourir

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

Déclarer des variables de différents types dans un corps d'initialisation de boucle For

En C , la question se pose de savoir s'il est possible de déclarer des variables de différents types dans le corps d'initialisation d'un pour la boucle. Considérons le code suivant :

for(int i=0, j=0 ...

Ceci initialise deux variables entières (i et j). Est-il possible de définir un int et un char dans ce corps d'initialisation à la place ?

La réponse : Non, mais...

Techniquement, il existe une solution de contournement, bien que non conventionnelle :

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

Ici, nous définissons une structure contenant à la fois un int et un char. La boucle for initialise une instance de cette structure, puis incrémente le membre int dans le corps de la boucle.

Bien que cette solution de contournement satisfasse aux exigences techniques, il convient de noter que ce modèle est généralement déconseillé en raison de son potentiel de confusion et manque de clarté par rapport à l'utilisation de variables distinctes.

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