怎么在一个子函数中返回多个返回值
怎么在一个子函数中返回多个返回值,假设返回值类型一样 问题点数:10、回复次数:9Top
1 楼winco(老狼)回复于 2002-12-06 16:34:53 得分 0
void test(int& a,int& b,int& c, int* d)
{
……
}Top
2 楼wang_rui_bing_(啊福)回复于 2002-12-06 16:46:44 得分 0
struct RESULT
{
int count;
所需类型 *result;
}
RESULT *test(void)
{
RESULT *ret =(RESULT *)malloc(sizeof(RESULT));
ret->result(所需类型 *)malloc(sizeof(所需类型));
return ret;
}
UP 的也可以Top
3 楼termite(★★★★★)回复于 2002-12-06 16:48:37 得分 0
参数。Top
4 楼oh_me_dive(飞到山的那一边)回复于 2002-12-06 16:53:44 得分 0
比如main中比较a,b,调用子函数:如果a>b,c=a+1,d=b+1;否则c=a-1,d=b-1;
能写段程序吗Top
5 楼flasty(对你笑容一闪)回复于 2002-12-06 16:56:17 得分 0
用指针做参数传到函数里,比如:
定义:
void function(int &a,int &b)
{
XXXX;
}
调用:function(i,j)
执行后i,j的值在函数中已被改变(假设在函数体里对i,j进行了操作)
Top
6 楼xdspower(杂食菜熊)回复于 2002-12-06 17:13:36 得分 10
一般在一个函数中返回多个值有多个方法,
一就是把要返回的值打包到一个类型中,返回类型的实例,比如wang_rui_bing_(啊福) 的方法,这也包括返回对象实例。
二就是在传入的参数中有专门接收结果的参数变量量,这又分两种情况,一是实际参数传入的值是有效的,另一种是传入的值是在函数中无效的(仅仅作为接收结果用),对于第一种,由于值是有效的,必然是初始化了的,但要注意的是第二种情况的参数实例也必须要初始化。: winco(老狼) ( ) 的方法其实就是这样的
三就是直接返回一定类型的指针,由于有其他约定,可以明确需要的位置和数量,比如标准库函数申请内存空间的函数maollc就是这样的,不过这样除非是十分必要否则最好不要采用,毕竟不容易维护,要尽量少用。Top
7 楼xdspower(杂食菜熊)回复于 2002-12-06 17:19:17 得分 0
void mf(int a,int b,int* c,int* d){
int l=100;
if(a>b)c=a+l,d=b+l;
else c=a-l,d=b-l;
}
void main(void){
int a=100;
int b=99;
int c=0;
int d=0;
fm(a,b,&c,&d);
printf("%d,%d",c,d):
}
Top
8 楼xdspower(杂食菜熊)回复于 2002-12-06 17:19:39 得分 0
void mf(int a,int b,int* c,int* d){
int l=100;
if(a>b)c=a+l,d=b+l;
else c=a-l,d=b-l;
}
void main(void){
int a=100;
int b=99;
int c=0;
int d=0;
mf(a,b,&c,&d);
printf("%d,%d",c,d):
}
Top
9 楼langziji(大象)回复于 2002-12-06 17:45:11 得分 0
多写几个return不就可以了嘛!嘿嘿。Top




