指標(Pointer)、參考(reference)
指標(Pointer)
- C++的複合型別,儲存記憶體位置的資料格式,是類似地址的存在
指標
資料型別 *變數名稱;
int *ptr; // (int *):存 int值的位置
int ptr; // (int) :存 int值
指標的指標
資料型別 **變數名稱;
int **ptr; // (int **):存 int值的位置的位置
int *ptr; // (int) :存 int值的位置
取址運算子
- 取址運算子(&)可用來取得變數開頭的記憶體位置,是類似查詢地址的方法
&變數名稱
int x = 5;
int *x_ptr = &x; // &x 取得 x 的位置 , 存給x_ptr
參考(reference)
- 替代名稱,是類似別名(Alias)的存在 (與取址運算子(&)不同)
資料型別 &變數名稱;
int x = 5;
int &ref = x; // (int &):x 的別名是ref
&ref; // (&) : 代表ref 的位置
間接運算子
- 間接運算子(*)可用來取得該記憶體位置的變數,是類似透過地址查誰住在那裡方法 (與指標(Pointer)不同)
*變數名稱
int x = 5;
int *x_ptr = &x; // &x 取得 x 的位置 , 存給x_ptr
*x_ptr // 從位置x_ptr,找到該位置是x (x=5)
參考資料
[3]. C++Primer中文版-Stanley B. Lippman, Josée Lajoie, Barbara E. Moo著; 黃銘偉 譯; 碁峰出版; 2019/11/30。
延伸閱讀