Re: [問題] 二維陣列利用函式改內容
看板C_and_CPP (C/C++)作者snowlike (snowlike)時間16年前 (2009/09/28 20:41)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章