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

 我来答
GiraKoo
2012-06-18 · 还没有任何签名哦
GiraKoo
采纳数:3949 获赞数:11110

向TA提问 私信TA
展开全部
我明白你的意思了。
我先给你说一下,你为什么错吧
函数的返回值和参数如果是数组对象的话,其实返回的是一个指针。而不是整个数组对象
而且数组之间的拷贝也不能够使用等号
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已经退化成指针,相当于传址调用。
风若远去何人留
推荐于2017-08-21 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部
如果只有一个值要返回,那么用返回值
比如 int fun();
调用的时候 int a=fun();

如果要返回数组,建议用指针传参。
比如 void fun(int *a);
在函数中赋值到a上,在主函数就可以直接用了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
易受伤的敏敏
2012-06-18
知道答主
回答量:6
采纳率:0%
帮助的人:9622
展开全部
直接调用函数,比方书定义
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;
}
这样就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
RLXXQ
2017-08-21 · TA获得超过1153个赞
知道小有建树答主
回答量:833
采纳率:51%
帮助的人:241万
展开全部

返回什么就等于就行了

比如

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

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7a4135c
2012-06-18
知道答主
回答量:32
采纳率:0%
帮助的人:25.6万
展开全部
直接用赋值号=
两者类型须相同
追问
不行啊 我的子函数定义 float32_t  a1[1024]    然后return a1
main 函数 定义 float32_t a[1024];
调用子函数后 将a矩阵赋值为a1的内容。但是显示
Error[Pe020]: identifier "a1" is undefined 说主函数中没有定义a1
若在主函数中定义了a1 又会显示重复定义 怎么办啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式