c语言函数返回两个数组 c语言函数返回多个值

C语言,一个函数怎么反回两个值以上绝对不能定义成全局变量,这是一种极其不好的习惯
一个函数怎么反回两个值以上,只要设定参数就行了,你需要几个参数就定义几个
void sub(int *n, int *a, int *b)
int *a, int *b 带回两个数组
int *n 带回数组大小
1楼写的非常好,简单扼要
笨啊,返回值的类型为int就行了,或者你需要小数就定义成double
编程中C语言函数想返回2个值该怎么办?楼下真牛逼,恐怕是怪兽大学毕业的吧 。
推荐做法
把函数声明写成这样int func(int* ret1,int* ret2)
这样就可以用ret1和ret2来返回信息了 , 事实上,scanf函数就是这样的一个例子 。
方案二呢,可以将多个返回值打成一个结构体,然后作处理,其实这种方式不怎么好,因为结构里的两个变量很可能没什么联系,而你却把他们打包在一起 。其实,等你学得好了,你会发现其实还有很多方法都可以达到目的,因为c语言就是如此强大而灵活 。最后,警告一下不要用 return a,b之类的语句 。因为a,b会被解释为一个逗号表达式,它最终的值就是b的值,所以return a,b;就等同于return b;
C语言调用两个数组返回两个数组怎么做?这种题只能采用指针带回多个值,return最多只能带回一个值 。编程如下(假设每个
数组元素
个数有10个):
#include
void
add(int
【c语言函数返回两个数组 c语言函数返回多个值】a[10],int
b[10],int
c[10],int
d[10])
{
int
i;
for(i=0;i10;i++)
{
c[i]=a[i]+1;
d[i]=b[i]+10;
}
}
void
main()
{
int
a[10],b[10],e[10],f[10];
int
i;
for(i=0;i10;i++)
scanf("%d",a[i]);
for(i=0;i10;i++)
scanf("%d",b[i]);
add(a,b,e,f);
printf("a数组中每个元素加1后的结果是:");
for(i=0;i10;i++)
printf("%d,",e[i]);
printf("\n");
printf("b数组中每个元素加1后的结果是:");
for(i=0;i10;i++)
printf("%d,",f[i]);
printf("\n");
}
c语言 调用用函数返回数组 。函数返回两个数组的和 , 并且在主函数中显示这个和数组 。为什么返回不了?你犯了C之大忌:返回了局部数组的指针!函数退出时那个C就消失了,你把它的首地址赋给ptr有何用?而且在主函数中操作ptr还会带来危险 。不要在add中声明数组C,改在主函数中声明,把首地址用指针传给add就成功了 。
C语言的子函数怎么返回两个值函数是不能直接返回两个值的,不过可以通过数组,列表,链表等方式,返回多个值 。
例如 int a[] f(),这个shu函数返回值就是一个整型的数组,如果你要返回两个值,可以定义数组长度为2 , a[0]保存第一个值,a[1]保存第二个值 。
int fun(int a, int b, int *c, int *d);
参数是a,b , 返回值是c,d , c和d用指针传进去 。
c,d可以是其他参数类型,也可以是数据结构 。
函数返回值可以用于返回error 。
扩展资料:
如果没有返回值类型名为"void", 整数类型int 类型返回值为整数类型int,以此类推……
类型名有:void int long float int* long* float* ……
C++中函数的调用:函数必须声明后才可以被调用 。调用格式为:函数名(实参)
调用时函数名后的小括号中的实参必须和声明函数时的函数括号中的形参个数相同 。
有返回值的函数可以进行计算,也可以做为右值进行赋值 。
参考资料来源:百度百科-函数
c语言中在一个自定义函数中怎么返回两个值?方法一:设置全局变量c语言函数返回两个数组,这样在形参中改变全局变量c语言函数返回两个数组,在实参中也会有效 。所以可以在形参中改变多个全局变量c语言函数返回两个数组的值c语言函数返回两个数组,那么在实参中就相当于返回多个值 。

推荐阅读