怎样从一个函数返回多个值?
答案:3 悬赏:20 手机版
解决时间 2021-01-28 19:07
- 提问者网友:咪咪
- 2021-01-28 16:06
怎样从一个函数返回多个值?
最佳答案
- 五星知识达人网友:忘川信使
- 2021-01-28 16:43
函数的返回值顶多是一个数,通过函数直接返回的这个数只有在是指针时才能给出多个数据结果。
可以考虑以下几个方法:
返回指针:
int* display() { int *p; p=malloc(sizeof(int)*6); ... return p; } //用p[0]~p[5]计算各位
void main() { int *p; p=display(); ... free(p); }
使用全局变量:将shiwa,wa,qiao,bai,shi,ge定义成全局变量,然后子程序和主程序直接用
使用函数参数:
void display(int* shiwa,int* wa,int* qiao,int* bai,int* shi,int ge)
函数中用类似这样的用法计算:(*ge)=Data%10;
void main() { int shiwa,wa,qiao,bai,shi,ge; display(&shiwa,&wa,&qiao,&bai,&shi,&ge) }
用一个足够长的数返回:
long display() { long n; ... n=shiwa; n*=10; n+=wa; n*=10; n+=qiao; n*=10; n+=bai; n*=10; n+=shi; n*=10; n+=ge; return n; }
void main() { int wa; long n; n=display(); wa=n/10000; wa%=10; }
全部回答
- 1楼网友:青灯有味
- 2021-01-28 18:44
可以传入多个指针指向不同的地址, 函数可以填入, 或者使函数返回一个包含了需要值的结构, 又或者理论上可以使用全局变量。
- 2楼网友:神也偏爱
- 2021-01-28 18:05
函数返回值一般用来判断函数调用失败与否的,接收数据一般是外面分配内存空间,传参数进去接收填写这段内存空间。如果你真要返回多个值,又不传参数去接受数据,可以返回指针。如:
typedef struct tagreturn{
int a;
int b;
}return,*preturn;
return* fun_return_pointer()
{
return* p=(return*)malloc(sizeof return);//堆中分配变量
//赋值p指向结构体;
return p;
}
//得到结构后,注意释放堆中内存;
但一般不推荐这样做。一般传参数给函数接收数据,如:
int fun_param_result(return& rt) //或者参数传指针(return* prt)
{
//给rt赋值
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯