【发布时间】:2016-10-22 08:34:59
【问题描述】:
for 语句执行时,计数器变量的值必须加一,因为我使用的是预自增运算符。
#include <stdio.h>
int main (void)
{
unsigned int counter ;
for ( counter = 1; counter <= 10; ++counter /*here is problem*/) {
printf( "%u\n", counter );
}
}
问题-
程序执行时,counter变量的值最初是1而不是2。
【问题讨论】:
-
无论您是预增量还是后增量,这里都没有区别。直到第一个循环结束时才会发生。由于没有副作用,
++counter与counter++相同。 -
for ( counter = 1; counter++ <= 10;) -
为什么你认为应该是2?
-
每次循环迭代之后执行增量代码。即,在
printf之后。由于您没有使用自增表达式的结果,因此使用前自增运算符或后自增运算符没有区别。这只影响表达式的值,例如x = ++counter;与x = counter++; -
为什么这个 C 问题被标记为 Java 问题的重复?
标签: c for-loop counter increment pre-increment