C语言 为什么这个数组打印出来后面都是0

不是应该每一个下标 arr[n] 都是 1 吗 ,为什么后面的变成0了

img

int arr[30] = {1};
这是将数组第一个元素设置为1,其它为0
将数组全部元素设置为1的方法:

for(int i=0;i<30;i++)
arr[i] = 1;

这是系统默认会将未定义的置为0

数组初始值是你设过的就有数值,数量不够自动补零,跟前面的值没关系