对于c中的重复声明

时间:2016-06-20 23:46:43

标签: c for-loop counter increment pre-increment

当执行for语句时,计数器变量的值必须增加1,因为我使用了预增量运算符。

#include <stdio.h>
int main (void)
{
    unsigned int counter ;
    for ( counter = 1; counter <= 10; ++counter /*here is problem*/) {
        printf( "%u\n", counter );
    }
}

问题 -

  

执行程序时,计数器变量的值最初为1而不是2。

3 个答案:

答案 0 :(得分:1)

for循环中

for(first statement; second statement; third statement){//...}; 

通常用于更新的第三个语句在每次迭代结束时执行,因此在第一次迭代期间变量counter将为1并变为第一次迭代结束时2

如果你想让你的counter变量在迭代开始时递增,那么尝试在for循环的第二个语句中使用它++counter

for ( counter = 1; ++counter <= 10;)

原因:

因为,for循环是一个预测试循环和条件,通常是在每次迭代开始时检查第二个语句。所以现在你的counter在每次迭代开始时递增

答案 1 :(得分:0)

当执行for语句时

第一次循环时,第三个语句没有被检查天气你使用增量运算符或赋予for循环的条件但是

当循环开始迭代然后如果你在for循环的第三个语句使用任何递增或递减运算符然后它工作,如果你在for循环的第三个语句使用任何条件,那么你的程序将永远不会导致无限循环。

答案 2 :(得分:0)

如果您希望计数从2开始,则应将for循环中的count初始化为

for ( counter = 2; counter <= 10; counter++) {
    printf( "%u\n", counter );
}

C遵循for loops的以下语法:

for ( init; condition; increment ) {
   statement(s);
}

此处的初始化部分是您进行初始化的地方。