十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在C中,正常情况下,我们只能从函数中返回一个值。但在有些情况下,我们需要从函数中返回多个值,此时使用数组或指针能够很好地完成这样的任务。这里是一
创新互联专注于苏尼特右企业网站建设,成都响应式网站建设,商城网站建设。苏尼特右网站建设公司,为苏尼特右等地区提供建站服务。全流程定制网站制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
个示例,这个程序使用一个整型数组作为参数,并将数组元素的和与积返回给调用函数。下面是C代码,这是一种常见情况。下面给出实现技巧:
1.
#include
2.
#include
3. int*
Pool(int array[],int size)
4.
{
5.
int *x;
6.
int i=0;
7.
int
a[2]={0,1};
8.
for(i=0;i
9.
{
10.
a[0]+=array[i];
// 存储数组元素值的和
11.
a[1]*=array[i];
// 存储数组元素值的积
12.
}
13. //
将数组的基地址赋值给整型指针
14.
x=a[0];
15. //
返回整个数组
16.
return x;
17. }
18.
19. int main()
20. {
21. int
a[]={1,2,3,4};
22. int
*c; c = Pool(a,4);
23.
printf("Sum = %d\nProduct = %d\n",c[0],c[1]);
24.
getch();
25.
return 0;
26. }
这样,我们就知道如何使用数组和指针从C函数中返回多个值。在很多情况下你会发现这个技巧很有用。
方法一:设置全局变量,这样在形参中改变全局变量,在实参中也会有效。所以可以在形参中改变多个全局变量的值,那么在实参中就相当于返回多个值。
方法二:如果用数组名作为形参,那么改变数组内容,比如排序,或者进行加减运算,回到实参时依然是有效的。这样也会返回一组值。
方法三:可以利用指针变量,这个原理和方法二是一样的,因为数组名本身就是数组首元素的地址。就不多说了。 用结构体封装不同类型数据,或者用数组表示同类型数据,然后返回结构体指针或者数组名,本质都是用指针来返回多个参数
方法四:如果学过C++,可以引用参数
函数形参x和y和实参a和b是两组不同的变量,交换x和y的值不影响a和b的值。
你调用了a()之后,函数a()会返回一个5,但你没有将其返回值保存起来,所以这个返回值会被抛弃。要么用一个变量将函数a的返回值保存起来:int b=a(),要么将函数的返回值作为另一个函数的参数输入:printf("%d",a())。
自定义函数的返回值不是必须的,如果函数运行结束后需要一个结果给主调函数使用那就可以设置返回值,如果只是需要函数的运行过程,过程结束后没有其他要求就不用返回值