我在閱讀Accelerated C++的附錄A.有作者顯示的聲明看起來像這樣的例子:混淆指針聲明
const char * const * const * cp;
他們說,爲const char是符和* const的* const的* cp是說明符。我對額外的const和* s的目的感到困惑。這是一個const char指針的const聲明的聲明嗎?
我在閱讀Accelerated C++的附錄A.有作者顯示的聲明看起來像這樣的例子:混淆指針聲明
const char * const * const * cp;
他們說,爲const char是符和* const的* const的* cp是說明符。我對額外的const和* s的目的感到困惑。這是一個const char指針的const聲明的聲明嗎?
正如我們從cdecl看到,cp
是pointer
到const pointer
到const pointer
到const char
。
const char * const * const * cp;
cp is
a pointer
to const pointer
to const pointer
to const char
此外,標準(第8)說:
的SPECI網絡ERS註明型號,存儲類
您可以通過它分解從右到左看看這個或正在申報實體的其他財產 。聲明者指定這些實體的名稱 ,並(可選)使用諸如*(指向)和()(函數返回)等運算符修改指定者 的類型。
這非常有幫助,謝謝。 – user2433857
聲明CP作爲指針指向const指針常量指針爲const char
這是一個「const指針指向const指針的指針」 const char「,我相信。這就是C++的原因。 – aardvarkk