C 整理 const指標

2021-07-11 05:01:06 字數 713 閱讀 9775

c語言裡面const和指標的組合寫法經常令人困擾,想不起它真正表達的意義,而且這也是面試、筆試的時候重要考查的基礎知識。

看下面三種定義:

①const int   *  p

②int const   *   p

③int  *  const   p

前兩種定義表達的意思是一樣的:p指標指向的內容不被改變。

最後一種表達的是:p指標的指向不被改變。

是不是有點暈?面試的時候被問起一時想不起來估計葉舌懵逼了。我是這樣理解的:按照有意義的最近取義。

例如①:( const int ) ( * p ),單獨的const是沒有意義的,所以它所以與int結合起來一起解釋,後面乙個就容易解釋得多,表明p是乙個指標變數。兩部分結合起來解釋就是 p是指向了const int的指標,由於指向的內容被定義為const,指標就無權修改內容。

那麼②可以這樣分:( int  const) (  *  p ),這樣分的話,意義就和①一樣了。因為宣告常量(int const p)和(const int p)一樣。

③:( int  )  (  *  const  p ) 因為(int *) 不能組合,所以它表達的意思是const p---》p不能被改變,*----》p是個指標,int-----》p是int的指標,組合一起就是p指標的指向不被改變。由於指向不被改變,所以才要求宣告時就需要指定它的指向。

上述理解本人的一些理解總結,至於是否真的是這樣,答案在《編譯原理》

C和指標 const指標

一,入門 const 指標 指標指向的內容不能變,指標可以改變指向 指向const的指標 指標不可以改變指向,指標指向內容可以變 include stdio.h int main 二,深度解析 大致說來其可分為三種情況 const修飾指標,const修飾引用,const修飾指標的引用.const修飾...

C 入門 const 指標

一.讓指標指向乙個常量,可以防止通過指標修改所指向的值 方式如下 int a 5 const int p a 此處不能通過 p 6 來修改a的值 但規定的是不能修改p指向的值,但可以通過a來修改自身,則p指向的值也會隨之改變。其次,我們不能修改p指向的值但是可以修改p的值,例如下面的操作時允許的 i...

c 引用 指標 const

1 const定義常量 const int valuename value 2 const與指標 指標常量 int const p 指標的位址不允許修改,值可以修改 常量指標 const int p 值不能修改,位址可以修改 指向常量的指標常量 const int const p 3 const與函...