为什么将C中的整数初始化为010与初始化为10不同?

当一个整数初始化为int a = 010时,a实际上设置为8,但是对于int a = 10,a设置为10.
任何人都可以告诉我为什么a = 010时没有设置为10?
最佳答案
因为它将010解释为八进制格式的数字.在base-8系统中,数字10等于base-10(我们的标准计数系统)中的数字8.

更一般地说,在C的世界中,为0整数文字加前缀指定了八进制文字,因此编译器的行为完全符合预期.

转载注明原文:为什么将C中的整数初始化为010与初始化为10不同? - 代码日志