c - 了解此 C 程序的行为

标签 c printf program-entry-point

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/

相关文章:

c - 成员 "Token"的 Yacc 错误请求不是结构或 union

c - 尝试计算两点之间的距离

c - 在 C 中打印 float ,同时避免将可变参数提升为 double

c - C中的多个文件编译错误

c - 这个有两个主要函数的C程序是如何编译运行的呢?

c - 在c中按列迭代二维数组

无论如何都可以更改数组的默认指针吗?

java - 我的 Rational 代码的主要方法

c - C 中的 printf() 函数

c - 特定的 C 函数如何工作?