为什么我的数组中没有指定值?

Mar*_*tin 0 c arrays

#include <stdio.h>

int main(void)
{

    int values[10];
    int index;

    values[0] = 197;
    values[2] = -100;
    values[5] = 350;
    values[3] = values[0]+values[5];
    values[9] = 
    values[5] / 10;
    --values[2];

    for (index = 0; index < 10; index++)
        printf ("values[%i] = %i\n", index, values[index]);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么我在未分配的1,4和6-8元素中有值?我没有分配任何值.当它为空时如何让它自动分配0?

Oli*_*rth 6

你没有分配它们,所以你只是得到那些位置已经存在的垃圾.

要进行零初始化,您可以执行以下操作:

int values[10] = {0};
Run Code Online (Sandbox Code Playgroud)

或者,使用memset.