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
为什么我需要添加另一个")"?
for(int a = 0, b = 1; b < n; a++; b++)
^
|
problem
你需要一个逗号(,
)而不是分号(;
)在你的for
循环的末尾,你递增a
和b
:
for(int a = 0, b = 1; b < n; a++, b++)
^
这是逗号运算符。
这两个 SO 问题也可能有所帮助:如何将两个增量语句放在一个C++的"for"循环中?以及 C 中完整的"for"循环语法是什么(以及其他兼容的语法)?