從函式回傳陣列指標

文章推薦指數: 80 %
投票人數:10人

int * myFunction() { .... } 陣列位址指標:也就是指到陣列第一個元素位址的指標。

如下例子,age[10] 是一個 ... Next:實機練習題 Up:指標 Previous:傳送陣列位址到函式  Contents  DYWANG_HOME 從函式回傳陣列指標 C語言無法讓函式回傳整個陣列值,但可以藉由回傳陣列的位址指標,達到回傳陣列的目的,函式宣告方式如下: int*myFunction(){ .... } 陣列位址指標:也就是指到陣列第一個元素位址的指標。

如下例子,age[10]是一個10元素的整數陣列,arg就表示這個陣列第一個元素儲存的位址,也就是&age[0],可以宣告一個pointer變數p指到這個位址。

int*p; intage[10]; p=age; 範例:getRandom函式產生6個元素的隨機數,儲存在陣列r,並回傳陣列r的位址。

[dywang@dyw219zzz]$vimpointer10.c [dywang@dyw219zzz]$catpointer10.c #include int*getRandom(){ staticintr[6]; inti; srand((unsigned)time(NULL)); for(i=0;i<6;++i){ r[i]=rand(); printf("r[%d]=%d\n",i,r[i]); } returnr; } main(){ int*p; inti; p=getRandom(); for(i=0;i<6;i++) { printf("*(p+%d):%d\n",i,*(p+i)); } } 編譯 [dywang@dyw219zzz]$gcc-opointer10pointer10.c 執行結果:在getRandom內外輸出的陣列元素值完全一樣。

[dywang@dyw219zzz]$./pointer10 r[0]=126116717 r[1]=1369586395 r[2]=794304807 r[3]=586010293 r[4]=240585651 r[5]=20839561 *(p+0):126116717 *(p+1):1369586395 *(p+2):794304807 *(p+3):586010293 *(p+4):240585651 *(p+5):20839561



請為這篇文章評分?