C和C++的複雜聲明遵循right-left規則
,這個規則協助你快速地確定一個複雜聲明的確切含義。
/*<br />const 和 指標<br />令無數C++初學者頭痛的兩樣東西。<br />今天這個方法簡單了:從右開始結合,比如<br />const char *const a<br />從右向左結合<br />遇到const,說明a是個常量<br />遇到*,說明a是個常指標<br />遇到char 說明a這個指標指向的是字元<br />遇到const 說明const指向的是字元常量<br />由此:a是指向字元常量的常指標。</p><p>下面的定義式幫你掌握這種方法。<br />char a('V');<br />char *b(&a);<br />const char c('C');<br />const char *d;<br />char *const e(&a);<br />const char *const f(&c);<br />char **g;<br />const char **h;<br />char *const *i;<br />const char *const *const j = ??;<br />你能說出它們表示什麼嗎?<br />*/</p><p>#include <iostream><br />using namespace std;<br />int main()<br />{<br />char a('V');//字元變數</p><p>char *b(&a);//字元指標</p><p>const char c('C');//字元常量</p><p>const char *d;//指向字元常量的指標變數</p><p>char *const e(&a);//指向字元變數的常指標</p><p>const char *const f(&c);//指向字元常量的常指標</p><p>char **g;//一個指標變數,它指向的是一個指向字元變數的指標</p><p>const char **h;//一個指標變數,它指向的是一個指向字元常量的指標</p><p>char *const *i = ??;<br />const char *const *const j = ??;//這兩個留給大家想</p><p>return 0;<br />}