【转】C 从函数返回数组
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 从函数返回数组相关推荐
- linux shell 字符串 数组,bash shell函数返回数组字符串
#!/bin/bash # script:getselfvar.sh # 每个脚本中都在末尾追加了一段特殊的域名ip序列,需要将这段序列存放到数组变量中,供 # 脚本使用,例子中的ip和域名是处理过的 ...
- c语言怎么返回数组,c++从函数返回数组的方法代码
c++如何从函数返回数组? C++ 从函数返回数组 C++ 不允许返回一个完整的数组作为函数的参数.但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针. 如果您想要从函数返回一个一维数组,您 ...
- matlab二重指针,VC++中函数返回数组指针或者带指针的结构体的编译方式是否可取? - 程序语言 - 小木虫 - 学术 科研 互动社区...
libralibra 构造函数+析构函数应该是比较正规的做法吧, 你的结构体/类被提早释放的问题,是不是那个结构体是局部变量,当超出作用域时对象被销毁,如果存在析构函数,会被默认调用, 如果你返回结构 ...
- 关于C语言函数返回数组的问题【转】
(转自:https://blog.csdn.net/earbao/article/details/53401800) 关于C语言函数返回一个数组 c语言中函数不能直接返回一个数组,但是可以用其他方式实 ...
- c语言在函数中返回数组,关于C语言函数返回数组的问题
关于C语言函数返回一个数组 c语言中函数不能直接返回一个数组,但是可以用其他方式实现类似功能,不过需要注意: 1.该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放. 可以是全局 ...
- c语言中自定义函数返回数组,C语言自定义函数返回数组的方法(图文详解)
C语言自定义函数返回数组的方法(图文详解) 最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下: 直接返回str ...
- vb.net函数返回数组
今天写了一个程序需要函数返回数组,看了别的网友的程序发现有bug,特此记录一下 返回函数写法 Private Function Fun_Fp32ToByte(ByVal fp32 As Single) ...
- c 语言 函数返回数组_如何在C ++函数中返回数组
c 语言 函数返回数组 介绍 (Introduction) In this tutorial, we are going to understand how we can return an arra ...
- C++ 函数返回数组处理方法
最近在通过函数返回数组时踩到了一些坑,在此记录一下. 首先C++函数的返回类型没有"数组"这一结构,因此一般情况下我们会采用指针去接受数组的首地址来进行返回.另外由于函数体内定义的 ...
最新文章
- 《Ember.js实战》——2.3 计算属性
- 吐血整理所有常用端口,遇到端口问题一查就懂!
- 投资者建议三星电子一分为二 股价创历史新高
- 成功解决WARNING:tensorflow:Variable += will be deprecated. Use variable.assign_add if you want assignmen
- 微信红包随机数字_微信红包的随机算法
- win7的python3.5安装numpy包
- Pycharm使用远程服务器运行代码
- python最常用的编程方式是什么_python常用模块和对象编程
- Infographic Modern Graphs Mac(现代信息图表动画fcpx插件)
- 如何做一个国产数据库(七) 网络传输 java做订阅客户端
- linux ftp命令参数全集
- 与近似比固定算法的高性能算法
- CSDN写博客怎么插入数学公式(干货满满呦)
- 均匀分布产生高斯分布
- Android原生系统真的那么好用吗?安卓原生系统吊打其他系统,因为有Google-Play
- 3ds max 旋转及角度
- 什么是ArcGIS Engine?
- SeasonJoe学长的考研日记
- 【065】Spring Cloud服务注册中心双节点集群,使用Eureka实现,以IP方式配置,基于Spring Cloud的Camden SR5版本
- c语言:输入一个字符串,统计字母,数字,空格出现的个数,c - 统计字符串字母,空格,数字,其他字符的个数和行数....
热门文章
- 如何在mac上面看充电器的瓦数!
- 2018.8.5 复习笔记
- virtualbox4 剪贴板(共享粘贴板)失效之原因
- 产品设计体会(9000)人人都是产品经理,系列说明
- 遇到ORA-3136的解决之道
- Android——开源框架Universal-Image-Loader + Fragment使用+轮播广告
- android-2.3.5_r1
- jquery插件分类与编写详细讲解
- [Windows Server] 在 Windows Server 2012 上安裝 .NET Framework 3.5 - 摘自网络
- C++内联函数的学习