ホームページ >バックエンド開発 >C++ >C の For ループの初期化で異なる​​型の変数を宣言できますか?

C の For ループの初期化で異なる​​型の変数を宣言できますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-22 08:36:11991ブラウズ

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

For ループの初期化本体での異なる型の変数の宣言

C では、ループの初期化本体で異なる型の変数を宣言できるかどうかという疑問が生じます。 forループ。次のコードを考えてみましょう:

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

これは 2 つの整数変数 (i と j) を初期化します。代わりに、この初期化本体で int と char を定義することは可能ですか?

答え: いいえ、しかし...

型破りではありますが、技術的には回避策があります:

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

ここでは、int と char の両方を含む構造体を定義します。 for ループは、この構造体のインスタンスを初期化し、ループ本体内の int メンバーをインクリメントします。

この回避策は技術的な要件を満たしていますが、混乱を招く可能性があるため、このパターンは一般的に推奨されないことに注意してください。また、個別の変数を使用する場合と比べて明確さが欠けています。

以上がC の For ループの初期化で異なる​​型の変数を宣言できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。