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 サイトの他の関連記事を参照してください。