使用for循环初始化数组,并使用最终数组元素的值作为条件(在C中)

我希望此代码可以打印

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 is

for(int i = 0; i < 10; i++)

The 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.

点赞
评论
墨小沫
墨小沫

您的数组未初始化,因此它包含的值是不确定的。无法保证未初始化的值将包含任何特定的值,实际上,读取的值可能在后续读取时发生变化。

如果想要有意义的结果,则在读取数组元素之前,需要使用一些值对其进行初始化。

点赞
评论