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://scpingwu.com/article/dodchgp.html