c语言函数返回到数组里面 C语言 函数返回数组

C语言函数中怎么返回一个二维数组

1、我们首先定义一个二级指针和一个行列变量[int ** array,row,column;]。

在望江等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、成都网站制作 网站设计制作按需定制,公司网站建设,企业网站建设,品牌网站设计,网络营销推广,成都外贸网站建设公司,望江网站建设费用合理。

2、然后我们编写进入行和列的语句,代码如图所示。

3、接下来我们可以用一维数组打开一维一维数组。

4、接下来,我们使用[array [i] =(int *)malloc(sizeof(int)* column);]来为数组再次生成包含该数组的新数组。

5、然后我们可以为它赋值并输出[代码如图所示]。

6、运行程序后我们可以看到这种效果。

C语言中,return语句怎么样返回一个数组?

首先,C/C++只能返回数组的指针而不能返回整个数组。即使返回数组的指针,但如果函数中的数组是自动性质,那将是危险的。这是比较正宗的表述。如果确实需要从函数中返回自动性质的数组的全部元素值,有没有办法呢?有。由于C/C++是允许返回结构体的,可以定义一个结构体模板,把数组作为成员安排在其中,函数中临时声明结构体变量,操作其中的数组;完毕后返回结构体变量,在主调函数中用同类型的结构体变量接收就可间接实现“返回一个数组”。举例代码如下:

#include "stdio.h"

struct A{

int m[30];//把数组m安排在结构体A中

};

struct A fun(int n){

int i,j,k;

struct A s;//在函数中声明自动型结构体变量s

for(i=0;in;s.m[i++]=i+1);//为结构体成员数组m赋值1~15

for(j=n-1,i=0;ij;i++,j--)//倒序这个数组

k=s.m[i],s.m[i]=s.m[j],s.m[j]=k;

return s;//返回结构体变量s

}

int main(int argc,char *argv[]){

A a;//主调函数中声明同类型结构体变量a接收函数fun的返回值

int i;

a=fun(15);//用15调用fun(不要大于30,只是举例),将结果赋于a

for(i=0;i15;i++)//输出看看是不是倒序了...

printf("%d ",a.m[i]);

printf("\n");

return 0;

}

运行结果如下:

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语言函数如何return数组?

数组不用return,数组在函数中改变是改变的实参。

因为数组是地址。这样做

/*

note:your

choice

is

c

ide

*/

#include

"stdio.h"

static

int

max[5];

void

main()

{

int

va[5][5];

int

peo;

int

sub;

for(peo=0;peo5;peo++)

{

sub=0;

printf("yingyu:");

scanf("%d",va[peo][sub]);

sub++;

printf("shuxue:");

scanf("%d",va[peo][sub]);

sub++;

printf("guoyu:");

scanf("%d",va[peo][sub]);

sub++;

printf("shehui:");

scanf("%d",va[peo][sub]);

sub++;

printf("li

ke:");

scanf("%d",va[peo][sub]);

}

max_of(va);

printf("yingyu:%d\n",max[0]);

printf("shuxue:%d\n",max[1]);

printf("guoyu:%d\n",max[2]);

printf("shehui%d\n",max[3]);

printf("like:%d\n",max[4]);

}

int

max_of(int

vb[5][5])

{

int

k,r;

for(k=0;k5;k++)

{

max[k]=vb[0][k];

for(r=0;r5;r++)

{

if(vb[r][k]max[k])

max[k]=vb[r][k];

}

}

}

应该这样做,输出每一门的最大值

不好意思,刚才错了,我现在把正确的贴上去了

你的那个一位数组应设为全局变量放在程序开始,

然后是数组因为数组就是地址,所以他们不用返回,他们在那个函数中其实是改变的数组内部的值,不是形式参数,故c语言能读出数组中的值

怎么使C语言的函数返回值为一个数组

// 方法1,用静态变量进行返回

char *SubFunction(void)

{

static char szText[5] = "adfa"; // 用静态空间

//对p进行赋值操作

return szText;

}

void Caller() // 这个函数调用SubFunction

{

TRACE("%s\n", SubFunction);

}

// 方法2,用指针传递

void SubFunction(char *pText1, char *pText2)

{

// 对pText1, pText2运算

strcpy(pText1, "love");

strcpy(pText2, "you");

return;

}

void Caller() // 这个函数调用SubFunction

{

char szText1[5], szText2[5]; // 当然这里也可以动态分配内存

SubFunction(szText1, szText2); // szText1, szText2就是带回的值

TRACE("%s %s\n", szText1, szText2);

}

c语言如何返回一个数组?

只能返回一个数,数组不能返回,以数组为函数参数传给形参时,由于是数组名传递(地址传递),实参和形参共用一段内存,对形参更改时实参的值也会改变,所以不需要返回值


分享名称:c语言函数返回到数组里面 C语言 函数返回数组
路径分享:http://ybzwz.com/article/dodchgp.html