Re: [問題] 二維陣列利用函式改內容

看板C_and_CPP (C/C++)作者 (snowlike)時間16年前 (2009/09/28 20:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《tomore (小Q)》之銘言: : void sort(int *ptr,int size){ : //*ptr=array[0] : //*(ptr+1)=array[1] : ptr++; : //*ptr=array[1] : //*(ptr+1)=array[2] : } : int main(){ : const int size; : array[size]; : sort(&array[0],size); // 傳遞陣列的初始位址及陣列大小 : system("pause"); : return 0; : } : 或許你會分不清什麼是取值或取位址 : 指標所儲存的內容是位址而不是值 : 所以在指標前加上* 就是顯示這個指標指向的位址中的值 : 如果沒加上*就只是單純的顯示這個指標目前指向的位址 : 而在變數前加上&則是取位址的意思 : 不知道這樣解釋你會不會比較清楚一點 *( *(ary+i) +j ) ↑↑↑↑↑ 以第一維來說它的值是第二維的起始位址,因此就設計上的意義來說 第一維所儲存的是用來代表第二維的起始位址,當然儲存數值可以是不一樣或是一樣的 *( *(ary+i) +j ) ↑↑ 而第二維才有本身連續的意義;推廣到多維也是一樣,只有最後一維才有連續上的意義 不過靜態矩陣就位址上好像都是連續的厚?自然t大的想法是可行的 然後原Po要不要先熟悉指標,畢竟t大都有把規則寫在註解裡 查詢'二維'應該也有許多方法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.184.50
文章代碼(AID): #1AmAxhNm (C_and_CPP)
文章代碼(AID): #1AmAxhNm (C_and_CPP)