qDebug 打印出错误的数字

qDebug prints a wrong number

我只是尝试使用 qDebug 打印一个数字,如下所示:

qDebug() << QString::number(03001);

但结果是:

"1537"

如果我尝试在没有第一个零的情况下打印:

qDebug() << QString::number(3001);

结果正确:

"3001"

为什么会这样?

我正在使用 Qt 5.3。

03001 是 C++ 中的八进制数。

前导零将使数字被解释为 octal literal

octal-literal is the digit zero (0) followed by zero or more octal digits (0, 1, 2, 3, 4, 5, 6, 7)

所以这与 qDebug 没有任何关系,但与 C++ 解释的方式有关 integer constants