C 語言 講義 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C
自訂函數的參數傳遞
比較 | 函數 - 傳值 | 函數 - 傳址 | 函數 - 傳參考 |
優 | 簡單易寫 | 藉由傳遞地址來改變主程式的變數的值, 以達到傳回多個數值的目地。 |
寫法類1,效果同2 |
常用於 | 一般傳遞 | 1.傳遞陣列的起始位址 2.傳遞被改變的變數的地址 |
|
例 | int cal1(int a,int b,int c) { return a+b+c; } void main() { int sum,a[3]={1,2,3}; sum = cal1(a[0],a[1],a[2]); cout << sum ; } |
int cal1(int *b) { *b = 10; return *b+*(b+1)+*(b+2); } void main() { int sum,a[3]={1,2,3}; sum = cal1(a); cout << sum ; } |
int cal1(int &a,int &b,int &c) { a = 10; return a+b+c; } void main() { int sum,a[3]={1,2,3}; sum = cal1(a[0],a[1],a[2]); cout << sum ; } |
函數間 - 傳值、傳址、傳參考,可混用,例:int cal1(int a,int *b,int &c)
比較 | 陣列的正常用法 | 陣列的指標用法 |
常用於 | 同一函數下的使用 | 把陣列的起始位址交給別人, 以達到別人可使用這個陣列的目地 |
例 | void main() { int sum,a[3]={1,2,3}; sum = a[0]+a[1]+a[2]; cout << sum ; } |
int cal1(int *b) { *b = 10; return *b+*(b+1)+*(b+2); } void main() { int sum,a[3]={1,2,3}; sum = cal1(a); cout << sum ; } |
比較 | 字串(字元陣列)的正常用法 | 字串(字元陣列)的指標用法 |
常用於 | ||
例 |