我在CODEBLOCK上用C++编写了一个简单的程序。程序如下:为什么它会导致错误?
#include <iostream>
using namespace std;
int main()
{
int num = 09; //ERROR: Invalid digit 9 in octal constant
cout << num << endl;
num = 08; //ERROR: Invalid digit 9 in octal constant
cout << num << endl;
return 0;
}
此代码与上一个相同。但我已经改变了价值,写的NUM = 09,而不是015
我同意,如果我初始化(INT NUM = 015),它使输出的八路是13
但在上述程序,我试图初始化(int num = 09和num = 08)它给出错误,你可以看到。
首先,我想知道它为什么会产生一个ERROR以及如何?
其次是它背后的逻辑是什么?
请给我合适的例子,如果有的话。
它使八进制。 – AlexD
来吧伙计们,这是一个合法的问题,可能很难谷歌。至少将其标记为一个笨蛋而不是downvoting。 –
@MattiVirkkunen我使用了“整数字面值前面的C++零”,答案包含在第一页结果的google预览中。 –