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. c语言中自定义函数返回数组,C语言自定义函数返回数组的方法(图文详解)

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

  2. C语言,函数返回数组

    C语言,函数能否输入或返回一个数组? 可以的,但大多数方式都是说将数组的首地址作参数输入,或是指针函数返回一个数组的首地址.而这种方式并非真正意义上的"输入"或"输出&q ...

  3. c语言子函数返回数组,main函数3种方法打印输出

    List item 下文主函数调用receive函数得到receive函数内的a数组,并打印输出: :------------------------------------------------- ...

  4. C语言从函数返回数组的方法

    C 语言不允许返回一个完整的数组作为函数的参数.但是,可以通过指定不带索引的数组名来返回一个指向数组的指针. 另外,C 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量. 示例 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Docker 部署SpringBoot项目不香吗?
  2. JS之按照Unicode返回指定字符串
  3. php 游标 上移,jQuery点击input使光标移动到最后或指定位置
  4. _Linux内核分析(二)-内核模块简介和简单内核模块实现
  5. 现有书形成的网络职业知识体系
  6. 网御神州和北京邮电大学成立信息安全联合实验室(2007-07-04)
  7. thoughtworks面试题分析与解答
  8. 《几何与代数导引》习题1.34.2
  9. WP-Super-Cache的使用
  10. 武汉芯源CW32L083系列MCU在空气净化器的应用介绍
  11. 一个从业(非正品)奢侈品十年从业者的经验和历程。
  12. Linux下ps参数详解
  13. Vue中el-table追加行后固定列滚动错位问题
  14. Linux之计划任务与系统安全(cron周期性计划任务)
  15. python实现二维码识别软件_OpenCV和Zbar两个Python模块实现二维码和条形码识别
  16. AppCompat V21:将 Materia Design 兼容到5.0之前的设备
  17. ComponentOne Studio Enterprise 2022
  18. 简单的Web版计算器
  19. CnOpenData中国专利详细地址数据
  20. 树莓派安装开源项目——wukong_robot和魔镜结合 个人经验总结

热门文章

  1. 如何从 MacBook中 移除 AccessibilityMethod
  2. java ecdh秘钥交换_ECDH密钥交换的C程序
  3. linux下FTP服务启动与关闭命令(转)
  4. AIR中调用exe或者bat可执行文件
  5. SQL优点MySQL优点
  6. vue组件的拖动排序
  7. 关于字体适配的那些事
  8. 用什么方法一键查询名下所有快递的物流详情
  9. [津门杯]全部WEB题解
  10. 再生核Hilbert空间