int值前面的额外0是什么意思?

Cha*_*han 5 c++ octal

从一段混淆的代码中激发灵感,我有一个关于为整数赋值的小问题:

#include <iostream>
#include <cstdio>

int main() {
    int i = 0101;
    std::cout << i << "\n";
}
Run Code Online (Sandbox Code Playgroud)

输出是65,我不知道65来自哪里?任何的想法?

Meh*_*dad 12

它指定一个八进制(base-8)数:0101 == 1 * (8 * 8) + 1 == 65.