我的代码如下:

void main()
{
    int vect[10], i;

    for (i=0; i<5; i++)
        vect[i] = i*2;

    printf("Vector: ");

    for (i=0; i<10; i++)
        printf("%d ", vect[i]);

    printf("\n");

在执行时,它将始终显示这种输出:
c - 遍历C语言中的数组-LMLPHP
为了让它只显示我输入的元素(前五个;0 2 4 6 8),我必须使用计数器,还是有办法告诉它只显示那些元素?
为什么元素5,6,7和9总是一样,但是第8个元素每次都会改变?我重写了程序以改变它显示元素的方式,这是同样的方式:它显示我输入的五个元素,然后是三个始终保持不变的元素,然后是一个每次执行程序时都会改变的元素,然后是最后一个不变的元素这是为什么?

最佳答案

int vect[10]索引5-9没有初始化-您需要为它们分配一些内容,否则它们将(可能)返回垃圾,因为这是未定义的行为(C99 standard, section 5.1.2 "Execution environments")您还可以将vect定义为static,即static int vect[10],因为静态变量将自动初始化为0,而静态int数组将所有元素自动初始化为0。

关于c - 遍历C语言中的数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34076077/

10-11 21:46