C 从函数返回数组

C 语言不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。我们将在下一章中讲解有关指针的知识,您可以先跳过本章,等了解了 C 指针的概念之后,再来学习本章的内容。

如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下:

int * myFunction()
{
   .
   .
   .
}

另外,C 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。

现在,让我们来看下面的函数,它会生成 10 个随机数,并使用数组来返回它们,具体如下:

实例

#include <stdio.h>
#include <stdlib.h>
#include <time.h> /* 要生成和返回随机数的函数 */
int * getRandom( )
{
   static int r[10];
   int i;/* 设置种子 */
   srand( (unsigned)time( NULL ) );
   for ( i = 0; i < 10; ++i)
{
   r[i] = rand();
   printf( "r[%d] = %d\n", i, r[i]);
}
   return r;
} /* 要调用上面定义函数的主函数 */
   int main ()
{/* 一个指向整数的指针 */
   int *p;
   int i;
   p = getRandom();
   for ( i = 0; i < 10; i++ )
{
   printf( "*(p + %d) : %d\n", i, *(p + i));
}
   return 0;
}
运行结果:

 

 

 
posted on 2019-12-30 18:54  张德明  阅读(1206)  评论(0)    收藏  举报