gpt4 book ai didi

c - for循环第一条语句应该是声明

转载 作者:太空宇宙 更新时间:2023-11-04 05:04:17 24 4
gpt4 key购买 nike

main ()
{
char i = 0;
for (i <= 5 && i >= -1; ++i; i > 0)
printf ("%d", i);
getch ();
}

我是一名 Java 学生,最近我开始编写 C 程序。我在一本C书上看到了这个问题。我对这个程序有以下疑问:

  1. 这个程序编译得很好。这不应该导致编译器错误吗? for 循环的第一部分应该是一个声明,但这里是一个 bool 表达式。
  2. 输出为 1,2,3,4.....126,127,-128....-2,-1。为什么输出停在-1?这应该是一个无限级数,永远重复上面的级数。

最佳答案

For 循环由三个表达式组成,所以这个例子编译得很好。第一个是i <= 5 && i >= -1 .它什么都不做。第二个是循环停止的条件。在你的情况下 ++i表示当 i 时循环停止达到值0。第三部分i>0什么也没做。所以你的周期:

  for (i <= 5 && i >= -1; ++i; i > 0)
printf ("%d", i);

相当于:

  i <= 5 && i >= -1;
while (++i) {
printf ("%d", i);
i>0;
}

相当于:

  while (++i) {
printf ("%d", i);
}

关于c - for循环第一条语句应该是声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22039395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com