还是一个简单的程序,但是半天没想通,求解释,该怎么处理

还是一个简单的程序,但是半天没想通,求解释
int a=200, b=010;
printf("%d%d", a, b);

为什么输出是2008呢?

------解决方案--------------------
我犯了一个常识错误, C语言支持二进制的字面量, 如 0b10 = 2, 

总结下:
二进制前缀: 0b
八进制前缀: 0
十六进制前缀: 0x
十进制: 无前缀
------解决方案--------------------
探讨
<C陷阱与缺陷>
里面有讲到的