i begin 为什么输出产生002? 感谢您的编辑和答案,但我仍然很困惑。 这是代码:
#include <stdio.h>
int t[3],i;
int main()
{
for(i=0;i<3;i++)
t[i]=i++;
for(i=0;i<3;i++)
printf("%d",t[i]);
}
002 谁能帮我理解为什么会这样?
最佳答案
这是因为您在 for 循环中将 i
计数器增加了两次(一次在 t[i] = i++
处,一次在for 循环的结束语句,i++
)。这样,for 循环就会执行两次(不是三次),一次当 i = 0 时执行,一次当 i = 2 时执行。这就是你的输出。
为了说服自己,请尝试添加打印内容,如下所示
for(i=0;i<3;i++) {
printf("%i ", i);
t[i]=i++;
}
并查看 for 循环执行了多少次以及执行了哪些 i
值。
关于c - 了解此 C 程序的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22094474/