看板 ESOE-91 關於我們 聯絡資訊
by value: 將呼叫函數的傳入變數複製一份給相對應的參數 以提供函數實作區內的 參數運用 因此並不會改變呼叫函數的傳入變數 ex: #include <stdio.h> void add(int); void add(int k) { k++; printf("the value of function add():%d\n",k); } void main() { int i=5; printf("before call by value:%d\n",i); add(i); printf("after call by value:%d\n",i); } output:5 6 5 by address: 把參數列的參數宣告成指標型態 以便放置傳入變數的位址 用傳位址的 方式來傳遞參數 將會把呼叫函數的傳入變數位址 指派給被呼叫函數的 參數列中相對應參數 故能透過指標來使用傳入變數本身 ex: #include <stdio.h> void add(int *); void add(int *k) { *k=*k+1; printf("the value of function add():%d\n",*k); } void main() { int i=5; printf("before call by address:%d\n",i); add(&i); printf("after call by address:%d\n",i); } output: 5 6 6 by reference: 把參數列之參數設為參考型態 以便讓參數參考相對應的傳入變數 ex: #include <stdio.h> void add(int &); void add(int &k) { k=k+1; printf("the value of function add():%d\n",k); } void main() { int i=5; printf("before call by reference:%d\n",i); add(i); printf("after call by reference:%d\n",i); } output: 5 6 6 -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 140.112.240.76