c语言for循环刷题

请问大佬,下面在个for循环的题是怎么个执行顺序?

int main()
{
  int k;
  for (k=2;++k<4;k++) ++k;
  printf("%d\n",k);
  return 0;
}

为什么最后k的值是6?我算的是5,哪里不对?
我的算法是:第一次++k值为3,小于4,所以执行语句++k。k为4,然后再执行条件表达式中的k++,k为5.第二次循环,k为5,循环结束. 请问我哪一步计算错了?

阅读 2.3k
1 个回答
第二次循环,k为5,循环结束

你的条件判断是 ++k<4 啊,里面不是还有一个 ++ ,判断结束还得加一次

推荐问题