位置:首頁 > 高級語言 > C語言教學 > C語言從函數返回指針

C語言從函數返回指針

C語言編程允許從一個函數返回一個數組,類似的C語言允許從一個函數返回一個指針。要做到這一點,就必須聲明返回一個指針,在下麵的例子中的函數:

int * myFunction()
{
.
.
.
}

第二點要記住的是,它不是一個局部變量的地址返回函數之外不是一個好辦法,所以必須要定義局部變量為靜態的。

現在,考慮下麵的函數,將產生10個隨機數,並使用它表示第一個數組元素的指針,即地址數組名返回。

#include <stdio.h>
#include <time.h>
 
/* function to generate and retrun random numbers. */
int * getRandom( )
{
   static int  r[10];
   int i;
 
   /* set the seed */
   srand( (unsigned)time( NULL ) );
   for ( i = 0; i < 10; ++i)
   {
      r[i] = rand();
      printf("%d
", r[i] );
   }
 
   return r;
}
 
/* main function to call above defined function */
int main ()
{
   /* a yiibaier to an int */
   int *p;
   int i;

   p = getRandom();
   for ( i = 0; i < 10; i++ )
   {
       printf("*(p + [%d]) : %d
", i, *(p + i) );
   }
 
   return 0;
}

當上述代碼被編譯在一起並執行時,它會產生結果一些如下:

1523198053
1187214107
1108300978
430494959
1421301276
930971084
123250484
106932140
1604461820
149169022
*(p + [0]) : 1523198053
*(p + [1]) : 1187214107
*(p + [2]) : 1108300978
*(p + [3]) : 430494959
*(p + [4]) : 1421301276
*(p + [5]) : 930971084
*(p + [6]) : 123250484
*(p + [7]) : 106932140
*(p + [8]) : 1604461820
*(p + [9]) : 149169022