c++如何从函数返回数组?

C++ 从函数返回数组

C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。

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

int * myFunction(){...}

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

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

实例

#include <iostream>#include <cstdlib>#include <ctime> using namespace std; // 要生成和返回随机数的函数int * getRandom( ){  static int  r[10];   // 设置种子  srand( (unsigned)time( NULL ) );  for (int i = 0; i < 10; ++i)  {    r[i] = rand();    cout << r[i] << endl;  }   return r;} // 要调用上面定义函数的主函数int main (){   // 一个指向整数的指针   int *p;    p = getRandom();   for ( int i = 0; i < 10; i++ )   {       cout << "*(p + " << i << ") : ";       cout << *(p + i) << endl;   }    return 0;}

当上面的代码被编译和执行时,它会产生下列结果:

62472319014687356958071135859764956776133575041377296355153031525917789067081820354158667126415*(p + 0) : 624723190*(p + 1) : 1468735695*(p + 2) : 807113585*(p + 3) : 976495677*(p + 4) : 613357504*(p + 5) : 1377296355*(p + 6) : 1530315259*(p + 7) : 1778906708*(p + 8) : 1820354158*(p + 9) : 667126415

更多相关文章

  1. c语言数组求和的方法
  2. C语言sqrt函数的用法
  3. c语言编写strcpy函数的方法
  4. vb数组怎么定义
  5. c语言strcpy函数用法
  6. c语言允许函数的递归调用吗
  7. c语言求x的n次方的函数是什么
  8. c语言函数返回值类型由什么决定?
  9. c语言程序总是从第一个定义的函数开始执行吗?

随机推荐

  1. Android(监听+回调=观察者)模式从Dialog到A
  2. [置顶] android加密解密算法之3DE
  3. Android 中文件类型与MIME的匹配表
  4. 实战Andriod开发环境部署
  5. Android Studio 项目的导入以及依赖
  6. Material Design控件使用详解
  7. android OSChina 客户端源代码剖析
  8. android通知适用于循环中的一个对象[重复
  9. Android Support Design Library之TabLay
  10. 有没有方法在不root手机的情况下读取Data