c语言 main函数调用子函数后,怎么获取子函数的返回值/数组 ,并将返回值/数组 赋给main函数的一个变量

如题所述

我明白你的意思了。
我先给你说一下,你为什么错吧
函数的返回值和参数如果是数组对象的话,其实返回的是一个指针。而不是整个数组对象
而且数组之间的拷贝也不能够使用等号
a[10] = "abc";
b[10];
b = a;是肯定不可以的
所以数组是用循环达到依次赋值的目的的
for (int i = 0; i < 10; ++i)
{
a[i] = b[i];
}
如果在函数里面,最好不要返回值为数组,而是参数为数组
例如:
fun(int a[], int size)
{
…………
}
调用的时候
main()
{
int a[10];
fun(a, 10);
}
这样你在fun里对于数组a的操作都会影响到main函数里的a
因为fun的参数a已经退化成指针,相当于传址调用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-08-21
如果只有一个值要返回,那么用返回值
比如 int fun();
调用的时候 int a=fun();

如果要返回数组,建议用指针传参。
比如 void fun(int *a);
在函数中赋值到a上,在主函数就可以直接用了。本回答被网友采纳
第2个回答  2012-06-18
直接调用函数,比方书定义
int fun(int a,int b)
{
c=a*b;
return c;
}
调用时就写成
int main()
{
int x=2,y=4;
int z=fun(x.y);
return 0;
}
这样就行了
第3个回答  2017-08-21

返回什么就等于就行了

比如

int add(int a,int b)
{
    return a+b;
}

int main()
{
    int sum;
    sum=add(1,1);
    printf("%d",sum);
}

sum就接收的add()函数的返回值

第4个回答  2012-06-18
直接用赋值号=
两者类型须相同追问

不行啊 我的子函数定义 float32_t a1[1024] 然后return a1
main 函数 定义 float32_t a[1024];
调用子函数后 将a矩阵赋值为a1的内容。但是显示
Error[Pe020]: identifier "a1" is undefined 说主函数中没有定义a1
若在主函数中定义了a1 又会显示重复定义 怎么办啊?

相似回答