[問題] 陣列位址的問題

看板C_and_CPP作者 (.д.)時間13年前 (2012/04/07 15:59), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
template <class X> void Sort(X number[], int length) { int i, j ; for(i = 0; i < length-1 ; i++) { for(j = 0; j < length-i-1; j++) { if(number[j+1] < number[j]) { std::swap(number[j+1], number[j]); } } } } void main() { int iarr[] = {7, 3, 5}; 請問下列用法何者錯誤? 1. Sort(&iarr , 3); 2. Sort(&iarr[0], 3); 3. Sort(iarr , 3); 4. Sort(iarr+0 , 3); } 為什麼第一個會出現錯誤呢?四個引數都是相同值吧?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.56.118

04/07 16:06, , 1F
指標所在的位置 v.s. 指標指向的位置?
04/07 16:06, 1F

04/07 17:42, , 2F
&iarr 是個 int(*)[3] 所以扔進去時 X 會是 int [3]
04/07 17:42, 2F

04/09 10:32, , 3F
2、3、4 都是該陣列起始位址,第1個則是「位址的位址」
04/09 10:32, 3F
文章代碼(AID): #1FV_FrMX (C_and_CPP)