【发布时间】:2019-03-24 23:36:51
【问题描述】:
我对循环增量的 C 语言的基本概念感到困惑。这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int j=0;int a;
for(j;j<=3;++j)
{
printf("hello\n");
a=j;
}
printf("%d,%d\n",j,a);
}
我的问题是:为什么a的输出不等于j的输出?我在想,如果j 每次迭代都会增加,并且j 的值存储在a 中,那为什么不一样呢?
【问题讨论】:
-
因为
j在分配给a后会递增。 (我也不会在for循环控制的第一部分写j。它什么也不做。我要么写for (j = 0; j <= 3; j++)(并省略变量定义中的初始化)或for ( ; j <= 3; j++)。我可能也会使用< 4而不是<= 3;它通常更正统的C,尤其是因为它是迭代4个元素的数组的正确方法。但是,这些括号中的观察与您的主要关注点相切.) -
感谢@JonathanLeffler!现在我的困惑被清除了。 :)
标签: c for-loop increment post-increment pre-increment