看板 EE_DSnP 關於我們 聯絡資訊
以下的測試我覺得有點偏了 會做測試的原因應該是對我先前的問題蠻好奇的才會做這些實驗 貼給大家參考 可直接copy到compiler上 我有都註解 如果有誤請高手指正 謝謝~ 測試一 #include<iostream> using namespace std; void f(int const**q);//q is a pointer to a pointer to const int int main(void){ /*const*/ int a = 20;//有沒有const都沒關係 int const* p = &a; f(&p); system("pause"); } void f(int const** q){ *q = 0;//可改*q的值但不可改**q } //有沒有const都沒關係, //我的解讀是只要int const * p = &a保證*p不能被修改就足夠了, //系統就會承認q是一個pointer to a pointer to a const int, //與a宣告時有沒有const無關。 測試二 #include<iostream> using namespace std; void f(int *const *q); int main(void){ int a = 20; int* p = &a; f(&p); cout << a << endl; system("pause"); } void f(int *const *q){ **q = 0;//雖然q是一個pointer to constant pointer to int,*q不能被修改 ,但**q可以 } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.240.71
lunworld:1. q is a pointer, pointng to a "const pointer" 11/11 10:35
lunworld: 所以只要p 是coinst pointer就可以了 11/11 10:36