#include <iostream>
void f(const int * & p)
{
int i =0;
i = p[0];
std::cout << i << std::endl;
}
int main()
{
int * p =new int[1];
p[0] =102;
f(p);
return 1;
}
gcc編譯器爲這個代碼提供錯誤:常量參數問題
prog.cpp: In function ‘int main()’:
prog.cpp:16: error: invalid initialization of reference of type ‘const int*&’ from expression of type ‘int*’
prog.cpp:5: error: in passing argument 1 of ‘void f(const int*&)’
但是,如果我改變 「F」 功能爲
void f(const int * const & p)
一切正常。有人可以解釋爲什麼const會以這種方式表現嗎?謝謝。
嗨。在這種情況下發布您看到的錯誤消息總是有幫助的。請你能這樣做嗎? – razlebe 2011-04-07 15:32:34
http://duramecho.com/ComputerInformation/WhyHowCppConst.html看看這個參考資料,它解釋了爲什麼你會得到這些錯誤 – 2011-04-07 15:33:05
我已經添加了gcc4.3.4產生的錯誤信息 – razlebe 2011-04-07 15:39:05