c语言自定函数返回数组 c语言用函数返回数组

C程序自定义函数数组返回值

由于最后返回值的类型是数组类型,所以在刚开始的时候定义函数int px(int b[5])应该为int * px(int b[5])就可以。即添加一个*就可以。

成都创新互联公司长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为榆次企业提供专业的网站建设、成都网站制作,榆次网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

在C语言中如何使函数返回数组

C/C++不能直接返回一个数组。这是由于在C/C++中,数组不是一种类型,因此不能被直接返回。 在C/C++中,一般有两种方法来返回一个数组。 第一种方法: 返回一个指向数组的指针,例如char (*retArray)[10]声明了一个函数retArray,该函数可以返回指向具有10个char元素的数组例子如下:#include#includeint (*retArray())[10]{int (*a)[10];int i=0;/*动态开辟空间*/ a=calloc(10,sizeof(int));/*赋值*/for(i=0;i10;i++){(*a)[i]=i;}return a;}int main(){int (*b)[10]; /*函数返回指向数组的指针*/ b=retArray(); /*打印第一个元素*/ printf("%d/n",(*b)[0]); /*释放空间*/free(b);return 0;}第二种方法: 如果你不喜欢用指针的形式返回数组,那么可以采用返回一个结构的形式。这种形式相对较安全,可以避免忘记释放指针而造成内存泄露,也可以避免访问悬挂指针造成的错误。但缺点是由于结构是先拷贝再返回,因此如果结构较大时,会影响效率和占用较大内存。 例子如下:#includestruct tag{int a[10];}x,y;struct tag retArray(){int i=0;for(i=0;i10;i++) x.a[i]=i;return x;}int main(){struct tag y=retArray(); printf("%d/n",y.a[3]);return 0;}注意:(1)在返回指针时要切记要避免内存泄露和访问悬挂指针。 (2)很多人认为指针和数组等价的,这是错误的。int (*a)[10]和int b[10]两者是不能直接用a=b来赋值的。在数组和指针作为函数参数传递时,二者可以认为等价,这是因为数组会被转化为指针来传递。 (3)返回多维数组方法类似。

c语言自己定义的函数如何返回数组

#includestdio.h

main()

{

float change(float array[3][3]);

float a[3][3];

int i,j;

for (i=0;i3;i++)

for (j=0;j3;j++)

scanf("%d",a[i][j]);

change (a);

for (i=0;i3;i++)

for (j=0;j3;j++)

printf("%4d\n",a[i][j]);

}

float change(float array[3][3]) // 这里可以写出 array[][3]

{

float c[3][3];

int m,n;

for(m=0;m3;m++)

for(n=0;n3;n++)

c[n][m]=array[m][n];

for(m=0;m3;m++)

for(n=0;n3;n++)

arry[m][n]=c[m][n]; //不想改变你的程序,所以在这里修改。这样 arry在主函数中是可以访问的。。。不用返回了。

}

以上回答你满意么?

c语言函数返回数组?

在C语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。

在大多数情况下,一维数组和一维指针是可以通用的。

比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。如出错,返回空指针NULL。 代码可以写成如下形式:

int *int_array_create(int n)//参数n为数组元素个数

{

int *r; 

if(n=0) return NULL;//参数错误

r = (int *)malloc(sizeof(int)*n);//申请内存空间,大小为n个int长度。

return r;//返回得到的整型数组的指针。 

}


文章名称:c语言自定函数返回数组 c语言用函数返回数组
网站路径:http://pwwzsj.com/article/hjesip.html