扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
int *create_array1()
创新互联建站是专业的黄南州网站建设公司,黄南州接单;提供网站制作、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行黄南州网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
{
int *p = (int *)malloc(sizeof(int) * 5);
for (int i = 0; i 5; i ++)
{
*(p+i) = i * 2;
}
return p;
}
int *create_array2()
{
int *p = (int *)malloc(sizeof(int) * 5);
for (int i = 0; i 5; i ++)
{
*(p+i) = i * 3;
}
return p;
}
int main()
{
int *pArray1 = create_array1();
int *pArray2 = create_array2();
printf("array1:");
for(int i = 0; i 5; i ++)
{
printf("%d ", *(pArray1 + i));
}
printf("\narray2:");
for(int i = 0; i 5; i ++)
{
printf("%d ", *(pArray2 + i));
}
free(pArray1);
free(pArray2);
return 0;
}
方法一:设置全局变量,这样在形参中改变全局变量,在实参中也会有效。所以可以在形参中改变多个全局变量的值,那么在实参中就相当于返回多个值。
方法二:如果用数组名作为形参,那么改变数组内容,比如排序,或者进行加减运算,回到实参时依然是有效的。这样也会返回一组值。
方法三:可以利用指针变量,这个原理和方法二是一样的,因为数组名本身就是数组首元素的地址。就不多说了。 用结构体封装不同类型数据,或者用数组表示同类型数据,然后返回结构体指针或者数组名,本质都是用指针来返回多个参数
方法四:如果学过C++,可以引用参数
在C语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。
在大多数情况下,一维数组和一维指针是可以通用的。
比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。如出错,返回空指针NULL。 代码可以写成如下形式:
int *int_array_create(int n)//参数n为数组元素个数
{
int *r;
if(n=0) return NULL;//参数错误
r = (int *)malloc(sizeof(int)*n);//申请内存空间,大小为n个int长度。
return r;//返回得到的整型数组的指针。
}
函数是不能直接返回两个值的,不过可以通过数组,列表,链表等方式,返回多个值。
例如 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++中函数的调用:函数必须声明后才可以被调用。调用格式为:函数名(实参)
调用时函数名后的小括号中的实参必须和声明函数时的函数括号中的形参个数相同。
有返回值的函数可以进行计算,也可以做为右值进行赋值。
参考资料来源:百度百科-函数
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流