利用指针,例如你在子函数中已经生成了一个数组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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)