我希望此代码可以打印
0 1 2 3 4 5 6 7 8 9
但它仅显示数组的前两个元素:
0 1
我意识到我可以将for循环中的条件更改为i <10以获得所需的输出,但是我想了解如何/是否可以使用数组元素的值来设置条件。
谢谢!
码:
#include <stdio.h>
int main()
{
int array[10];
for(int i = 0; array[i] < 10; i++)
{
array[i] = i;
printf("%d ", array[i]);
}
}
What you really want for your
for
loop isThe way you've got it now, you're checking the value of
array[i]
before it is given a value, meaning its value is whatever junk memory was on the stack when your function began.您的数组未初始化,因此它包含的值是不确定的。无法保证未初始化的值将包含任何特定的值,实际上,读取的值可能在后续读取时发生变化。
如果想要有意义的结果,则在读取数组元素之前,需要使用一些值对其进行初始化。