http://www.runoob.com/cprogramming/c-return-arrays-from-function.html

C 从函数返回数组

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;

}

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

r[0] = 313959809
r[1] = 1759055877
r[2] = 1113101911
r[3] = 2133832223
r[4] = 2073354073
r[5] = 167288147
r[6] = 1827471542
r[7] = 834791014
r[8] = 1901409888
r[9] = 1990469526
*(p + 0) : 313959809
*(p + 1) : 1759055877
*(p + 2) : 1113101911
*(p + 3) : 2133832223
*(p + 4) : 2073354073
*(p + 5) : 167288147
*(p + 6) : 1827471542
*(p + 7) : 834791014
*(p + 8) : 1901409888
*(p + 9) : 1990469526

【转】C 从函数返回数组相关推荐

  1. linux shell 字符串 数组,bash shell函数返回数组字符串

    #!/bin/bash # script:getselfvar.sh # 每个脚本中都在末尾追加了一段特殊的域名ip序列,需要将这段序列存放到数组变量中,供 # 脚本使用,例子中的ip和域名是处理过的 ...

  2. c语言怎么返回数组,c++从函数返回数组的方法代码

    c++如何从函数返回数组? C++ 从函数返回数组 C++ 不允许返回一个完整的数组作为函数的参数.但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针. 如果您想要从函数返回一个一维数组,您 ...

  3. matlab二重指针,VC++中函数返回数组指针或者带指针的结构体的编译方式是否可取? - 程序语言 - 小木虫 - 学术 科研 互动社区...

    libralibra 构造函数+析构函数应该是比较正规的做法吧, 你的结构体/类被提早释放的问题,是不是那个结构体是局部变量,当超出作用域时对象被销毁,如果存在析构函数,会被默认调用, 如果你返回结构 ...

  4. 关于C语言函数返回数组的问题【转】

    (转自:https://blog.csdn.net/earbao/article/details/53401800) 关于C语言函数返回一个数组 c语言中函数不能直接返回一个数组,但是可以用其他方式实 ...

  5. c语言在函数中返回数组,关于C语言函数返回数组的问题

    关于C语言函数返回一个数组 c语言中函数不能直接返回一个数组,但是可以用其他方式实现类似功能,不过需要注意: 1.该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放. 可以是全局 ...

  6. c语言中自定义函数返回数组,C语言自定义函数返回数组的方法(图文详解)

    C语言自定义函数返回数组的方法(图文详解) 最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下: 直接返回str ...

  7. vb.net函数返回数组

    今天写了一个程序需要函数返回数组,看了别的网友的程序发现有bug,特此记录一下 返回函数写法 Private Function Fun_Fp32ToByte(ByVal fp32 As Single) ...

  8. c 语言 函数返回数组_如何在C ++函数中返回数组

    c 语言 函数返回数组 介绍 (Introduction) In this tutorial, we are going to understand how we can return an arra ...

  9. C++ 函数返回数组处理方法

    最近在通过函数返回数组时踩到了一些坑,在此记录一下. 首先C++函数的返回类型没有"数组"这一结构,因此一般情况下我们会采用指针去接受数组的首地址来进行返回.另外由于函数体内定义的 ...

最新文章

  1. 《Ember.js实战》——2.3 计算属性
  2. 吐血整理所有常用端口,遇到端口问题一查就懂!
  3. 投资者建议三星电子一分为二 股价创历史新高
  4. 成功解决WARNING:tensorflow:Variable += will be deprecated. Use variable.assign_add if you want assignmen
  5. 微信红包随机数字_微信红包的随机算法
  6. win7的python3.5安装numpy包
  7. Pycharm使用远程服务器运行代码
  8. python最常用的编程方式是什么_python常用模块和对象编程
  9. Infographic Modern Graphs Mac(现代信息图表动画fcpx插件)
  10. 如何做一个国产数据库(七) 网络传输 java做订阅客户端
  11. linux ftp命令参数全集
  12. 与近似比固定算法的高性能算法
  13. CSDN写博客怎么插入数学公式(干货满满呦)
  14. 均匀分布产生高斯分布
  15. Android原生系统真的那么好用吗?安卓原生系统吊打其他系统,因为有Google-Play
  16. 3ds max 旋转及角度
  17. 什么是ArcGIS Engine?
  18. SeasonJoe学长的考研日记
  19. 【065】Spring Cloud服务注册中心双节点集群,使用Eureka实现,以IP方式配置,基于Spring Cloud的Camden SR5版本
  20. c语言:输入一个字符串,统计字母,数字,空格出现的个数,c - 统计字符串字母,空格,数字,其他字符的个数和行数....

热门文章

  1. 如何在mac上面看充电器的瓦数!
  2. 2018.8.5 复习笔记
  3. virtualbox4 剪贴板(共享粘贴板)失效之原因
  4. 产品设计体会(9000)人人都是产品经理,系列说明
  5. 遇到ORA-3136的解决之道
  6. Android——开源框架Universal-Image-Loader + Fragment使用+轮播广告
  7. android-2.3.5_r1
  8. jquery插件分类与编写详细讲解
  9. [Windows Server] 在 Windows Server 2012 上安裝 .NET Framework 3.5 - 摘自网络
  10. C++内联函数的学习