9
我想知道如果任何人都可以解釋以下對我說:如果我寫在C++中爲const int分配一個指針變量?
int i = 0;
float* pf = i;
我得到一個編譯錯誤(GCC 4.2.1):
error: invalid conversion from ‘int’ to ‘float*’
有道理 - 他們顯然兩種完全不同的類型。但如果我寫
const int i = 0;
float* pf = i;
它編譯沒有錯誤。爲什麼'const'在作業的右邊有所作爲?是不是'const'關鍵字的想法的一部分能夠強制常量值的類型約束?
我已經能夠想出任何解釋感覺有點虛假。而且我的解釋也沒有解釋這樣的事實:
const int i = 1;
float* pf = i;
無法編譯。任何人都可以提供解釋嗎?