c语言 main函数调用子函数后,怎么获取子函数的返回值/数组 ,并将返回值/数组 赋给main函数的一个变量
6个回答
展开全部
我明白你的意思了。
我先给你说一下,你为什么错吧
函数的返回值和参数如果是数组对象的话,其实返回的是一个指针。而不是整个数组对象
而且数组之间的拷贝也不能够使用等号
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已经退化成指针,相当于传址调用。
我先给你说一下,你为什么错吧
函数的返回值和参数如果是数组对象的话,其实返回的是一个指针。而不是整个数组对象
而且数组之间的拷贝也不能够使用等号
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已经退化成指针,相当于传址调用。
展开全部
直接调用函数,比方书定义
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;
}
这样就行了
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;
}
这样就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
返回什么就等于就行了
比如
int add(int a,int b)
{
return a+b;
}
int main()
{
int sum;
sum=add(1,1);
printf("%d",sum);
}
sum就接收的add()函数的返回值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用赋值号=
两者类型须相同
两者类型须相同
追问
不行啊 我的子函数定义 float32_t a1[1024] 然后return a1
main 函数 定义 float32_t a[1024];
调用子函数后 将a矩阵赋值为a1的内容。但是显示
Error[Pe020]: identifier "a1" is undefined 说主函数中没有定义a1
若在主函数中定义了a1 又会显示重复定义 怎么办啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询