作者softwind (software everywhere)
看板C_and_CPP
標題Re: [問題] 函式傳遞的問題
時間Sat May 23 00:34:50 2009
※ 引述《hateexam ()》之銘言:
: 為什麼這個問題-->見連結例子與其最佳答案
: http://zhidao.baidu.com/question/98153744.html
: 必須用call by address才能正確傳遞函式間的結果
: 而以下寫法不用call by address也能正確回傳a[n]的結果呢
[恕刪] ^^^^^^^^^^^^^^^
你所講的 就是你正在做的事阿
void F1(int a[]);
//上面的宣告
"等同於" void F1(int *a);
int main() {
int a[5];
// ...
F1(a); //把 a[0]的 address 傳入
//...
}
void F1(int a[]){ //當然 你在這邊就會收到 a[0] 的address了
// ...
}
對C而言 array的定義
1.
"連續"的記憶體空間
2. 相同的資料型態
so 你拿到第一個address 就能繼續往下拿 其餘的element
就這樣而已 不要想太多...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.115.191
推 hateexam:謝謝 很明瞭了 非常感謝 05/23 23:29
→ hateexam:^^ 05/23 23:29