For ループ初期化での異なる型の変数の宣言
C では、ループ内で異なる型の変数を直接宣言することはできません。 for ループの初期化本体。これは、ループの初期化部分が単一の式を予期しており、同じ型の変数のみを定義できるためです。
次の例を考えてみましょう。
for (int i = 0, j = 0; ...) { // ... }
このコードは、2 つの整数変数 i を正しく定義しています。そしてj.ただし、初期化内で整数と文字を宣言しようとすると、コンパイル エラーが発生します。
for (int i = 0, char c = 'a'; ...) { // ... }
技術的な回避策
ではありませんが、実際のシナリオでは推奨されていますが、for ループの初期化内でさまざまな型を宣言する技術的な回避策があります。これには、必要な型を含む単一の構造体を作成し、この構造体を初期化式として使用することが含まれます。
struct MyStruct { int a; char b; }; for (MyStruct s = { 0, 'a' }; s.a < 5; ++s.a) { std::cout << s.a << " " << s.b << std::endl; }
この例では、2 つのメンバー a (整数) と b (キャラクター)。ループの初期化では、MyStruct インスタンス s の a が 0 に等しく、b が 'a' に等しいように設定されます。ループは、s.a が 5 未満である限り継続します。
以上がC の For ループの初期化でさまざまな型の変数を宣言できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。