1
    for(int a = 0, b = 1; b < n; a++; b++)
    {
        if (compare(values[a], values[b]))
            counter++;
        else
            {
            int x = values[a];
            values[a] = values[b];
            values[b] = x;
            }
    }

コンパイルしようとすると、最初の行[for(int ...]]でこのエラーが発生します:

helpers.c:68:41: error: expected ')' before ';' token

別の')'を追加する必要があるのはなぜですか?

4

1 に答える 1

11
for(int a = 0, b = 1; b < n; a++; b++)
                                ^
                                |
                              problem

-loopの最後に,セミコロン()ではなくコンマ()が必要です。ここで、と:の両方をインクリメントします。;forab

for(int a = 0, b = 1; b < n; a++, b++)
                                ^

これはコンマ演算子です。

これらの2つのSOの質問も役立つ場合があります。2つのインクリメントステートメントをC++の「for」ループに入れるにはどうすればよいですか。 Cの完全な「for」ループ構文(および互換性がある場合は他の構文)は何ですか?

于 2012-07-02T19:15:09.357 に答える