我在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預覽中。 –