[C++] 指標與陣列(Pointer & Array)
程式語言就是跟電腦描述如何處理資料,所以要充分瞭解每個程式語言對資料型態的定義,C/C++因為更貼近記憶體的運作來設計,所以很多觀念在描述上略為抽象,在學習上需要格外費心。
建議手繪來幫助記憶。
複合資料型別 (compound type)
相較於基本型別int, double,C++還有一種複合資料型別。
其中很重要,會常用到的複合資料型別,就是參考(reference)、指標(pointer)、陣列(Array)
參考(Reference)
- 參考的定義

- 參考本身不是一個物件,而是對於一個已存在物件取別的名稱
指標(Pointer)
- 指標本身是一個物件,指向任何一個已存在物件,可以被指定或拷貝
- 指標宣告時,就要定義是指向哪種資料型態的物件
- 指標本身儲存的值,有三種情況
- 指向一個物件,值裡面存放另一個物件的位址
- 指向另一個物件尾端後的位置
- 沒有指向任何物件,值即為null
- 當一個指標指向一個物件,我們可以使用解參考(dereference)運算子*來存取物件
- 關鍵觀念:*, &的符號多重意義

- void指標:型別void是一個特殊的指標型別,可以存放任何物件的位址
陣列(Array)
-
陣列的定義:是一個複合資料型別,放置單一型別物件的容器,並且以位置來存取它們,有固定的尺寸
-
宣告與初始化陣列
- 指標算術
對一個指標做加減,會移動指向陣列中的位置
參考資料
C++ Primer 5th version