为啥Array中未指定的element显示出来不是0呢

为何Array中未指定的element显示出来不是0呢?
小弟在自学C语言,用的是Stephen G. Kochan的Programming in C这本书。练习到第七章数组时遇到输出结果与书中结果不同的问题。
书中代码:
#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;
}


调试结果:
为啥Array中未指定的element显示出来不是0呢

为什么没有指定的elements也会显示出不同的数值?是因为编译器不同造成的吗?
恳请诸位指点一二~
------解决方案--------------------
未初始化的内存,里面的值是不确定的,
改在 int values[10] = {0};//默认全部清0