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;
}
运行结果:

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM