C语言里1维数组作为返回值怎么传给主函数??

C语言里1维数组作为返回值怎么传给主函数??,第1张

利用指针,例如你在子函数中已经生成了一个数组a,那么你定义数组的返回值类型为该数组的元素类型的指针类型,再指向数组首字母即可

例如:是a整型数组

int

s()

{

int

a[10],p;

p=a;

return

p;

}

主函数用一个指针来接这个地址值即可。

这样定义split函数:

char (split(char strs))[1024]

{

static char temp[1024][1024];

int i, j=0;

for (i=0; strs[i]!='\0'; i++)

{

temp[j][i]=strs[i];

if (strs[i]==' ') {

printf("%s\n", temp[j]);

j++;

}

}

return temp;

}

函数头很难看是不是,弄个typedef就简单明了多了:

//还有,代码有点问题,改了下

#include<stdioh>

typedef  char(parr1024)[1024];

parr1024 split(char strs)

{

static char temp[1024][1024];

int i, j=0,k=0;   //再定义个k

for (i=0; strs[i]!='\0'; i++)

{

temp[j][k++]=strs[i];   //用k

if (strs[i]==' ') {

printf("%s\n", temp[j]);

j++;

k=0;  //复位k

}

}

return temp;

}

int main() {

char aa[]="hello world "; //后面加个空格方便测试split函数的输出

split(aa);

return 0;

}

你好!

    将函数采用指针的形式返回平均值

    

 注意看后面的注释

#include<stdioh>

int main()

{

float student_aver(float array[3][3]);   // 改成指针的形式输出 

float score[3][3];

float a;

int i,j;

printf("请输入学生各科的成绩:");

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf("%f",&score[i][j]);

printf("每个学生的平均成绩分别为:");

a=student_aver(score);                // 指针 a 接收函数的返回值 

for(i=0;i<3;i++)                      // 打印出平均值 

printf("%2f ",a[i]);

return 0;

}

float student_aver(float array[3][3])    // 改成指针的形式输出

{

int i,j;

float sum,a[3];

for(i=0;i<3;i++)

{

sum=0;

for(j=0;j<3;j++)

sum=sum+array[i][j];

a[i]=sum/3;

   }

return a;                             // 输出数组 a 

}

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

原文地址: https://outofmemory.cn/langs/12183051.html

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

发表评论

登录后才能评论

评论列表(0条)

保存