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.2k
1 个回答
第二次循环,k为5,循环结束

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题