c - 我无法理解打印第一个八个数组元素的数组的输出

我试图了解如何为给定代码生成以下输出。大小为八个元素的数组存储代码中提到的数字。这是它生成的输出:

0 1 8 9 100 101 110 111

我不明白的是为什么 89 是输出的一部分?为什么不打印值 010011

代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i;
    int a[8] = {000,001,010,011,100,101,110,111};

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

    return 0;
}

相关文章:

electron - 如何将在 Electron 上开发的桌面应用程序打包成.exe?

r - 如何创建一个因子但保留基础值,而不仅仅是整数代码?

object-detection - 使用 >450K 个实例训练 Dlib 对象检测

ada - 如何明确指定字 rune 字

sql - 带日期时间的 MSSQL 转换不输出 Z 时区指示符

vba - UDT 能否以任何方式用作方法参数?

timeout - Marklogic:XDMP-EXTIME 错误(超出时间限制)

d3.js - 使用 d3 v4.0 重新创建集群力布局

git - 在 Mac OS 10.7.5 上安装 Git

progress-4gl - 查询仅在运行时才知道名称的数据库表