C语言函数如何return数组?

C语言函数如何return数组?,第1张

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

因为数组是地址。这样做

/

note:your

choice

is

c

ide

/

#include

"stdioh"

static

int

max[5];

void

main()

{

int

va[5][5];

int

peo;

int

sub;

for(peo=0;peo<5;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;k<5;k++)

{

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

for(r=0;r<5;r++)

{

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

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

}

}

}

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

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

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

然后是数组因为数组就是地址,所以他们不用返回,他们在那个函数中其实是改变的数组内部的值,不是形式参数,故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);

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11680102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存