http://www.codeproject.com/cpp/complex_declarations.asp
C時代的指標已經夠複雜了, C++時代又加入了const和reference這兩個東西, 事情愈來愈複雜了。
int const * n;
像const被塞在中間, 我想初學者一定會很不確定說這個const到底是修飾int, 還是指標? 上面那篇文章提了一個"讀懂宣告"的秘訣......就是由右往左讀。所以, n是一個指標指向一個const int。
int *&p;
那這個呢? 一樣由右往左讀, p是一個reference參考到一個int指標。
const char * const * const s;
這個例子就比較極端了......正常情況下應該要避免這種複雜的宣告。但是, 還是給他解讀一下, s是一個const pointer to const pointer to const char。這個宣告等於下面這個宣告:
char const * const * const s;
const char變成char const而已, 不過這樣的宣告方式就讓由右向左的讀法比較通順了, 所以, 宣告的時候要盡量寫成這種讀起來比較通順的style。
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言