Please enable JavaScript.
Coggle requires JavaScript to display documents.
理解C.C++的指標與參考 (衍伸出三種傳遞變數方式 (Call By Value (呼叫方傳入變數本身, 接受方利用普通變數以數值方式接收,…
理解C.C++的指標與參考
衍伸出三種傳遞變數方式
Call By Value
呼叫方傳入變數本身
接受方利用普通變數以數值方式接收
由於是普通變數,故區域變數之操作不影響原變數狀態
Call By Reference
呼叫方傳入變數本身
接收方利用參考變數接收
接收方使用const 宣告將使得參考變數唯讀,無法修改內容
由於是參考,因此操作直接影響原變數狀態
Call By Address (Pointer)
呼叫方傳入位址(即指標變數)或對普通變數解參考
接收方利用指標變數接收
由於指標變數可以用位址取值,因此利用這個特性可以修改原變數的數值
寧以call-by-reference-to-const取代call-by-value
特殊變數型態
指標 Pointer
儲存位址的變數
宣告方式
type *name ;
int *x;
參考 Reference
直接表示變數本身 (別名)
宣告方式
type &name = org;
int &x_r =x;
取值/址方式
指標變數
*x // 表值
*(x++); //下一位址的值
x //表址
x++; //x變數值+1
其他變數(包含參考型態的變數與普通變數)
x // 表值
&x // 表址
關鍵點在於,呼叫者傳入相同的東西,會因為接收方式不同,產生不同結果