指針(數組、常量、函數)

指針數組、指針常量、指針函數

指針是C/C++特有的結構類型,也是最難理解的部分,有很多容易混淆的相關術語,rt。指針本身是個數據類型,指向特定數據。我們可以這樣理解:指針對應與一個儀表盤的指針,其指向的地址就是錶盤上數據。

  • 指針數組與數組指針
  • 指針常量與常量指針
  • 指針函數與函數指針

記憶方法有很多,不理解的時候就死記唄,然後用的時候慢慢領悟。上面上個記起來其實很簡單,怎麼唸的通就是怎麼個意思,如下:

指針數組:存放指針數組,還能讀成別的麼?只有這麼讀這個詞纔有意義。int *p[]
數組指針:指向數組指針;int (*p)[]

指針常量:這個指針常量;int * const p
常量指針:指向常量指針;int const *p

指針函數:返回指針函數; int* f()
函數指針:指向函數指針 int (*f)(); f=fun; int fun()

最後一個也是最好理解的,在此不贅述。
指針常量,既然這個指針是常量,那麼指針指向不能更改,但是指針指向的內容可以改變,也就是說,儀表盤上的指針現在鎖死不能擺動了,但是錶盤是可旋轉的了。
常量指針,指向常量的指針,也就是指針所指向的內容是常量,不可變,但是指針可以指向別處。也就是說,儀表盤指針可以轉動,但是錶盤是固定的。

指針數組與數組指針
A)int *p[];指針數組
B)int (*p)[];數組指針
我們可以根據符號優先級來理解,括號優先級高於星號,只看變量p的類型,可知A中p是一個數組,而B中p是一個指針。有了p的類型,剩下的就是類型的功能了,比如,A中p是數組,那這個數組的功能是……存指針,再比如,B中的p是指針,這個指針的功能是……指向數組咯。

怎麼解釋好理解好記憶,並且不失其本身意義,是教育者該考慮的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章