永发信息网

怎样从一个函数返回多个值?

答案:3  悬赏:20  手机版
解决时间 2021-01-28 19:07
怎样从一个函数返回多个值?
最佳答案



函数的返回值顶多是一个数,通过函数直接返回的这个数只有在是指针时才能给出多个数据结果。
可以考虑以下几个方法:
返回指针:
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; }
全部回答
可以传入多个指针指向不同的地址, 函数可以填入, 或者使函数返回一个包含了需要值的结构, 又或者理论上可以使用全局变量。
函数返回值一般用来判断函数调用失败与否的,接收数据一般是外面分配内存空间,传参数进去接收填写这段内存空间。如果你真要返回多个值,又不传参数去接受数据,可以返回指针。如: 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; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
富玉宾馆(阜新阜新蒙古族自治县)地址好找么,
1.2.60x10的3次方有几个有效数字
江苏徐州可以养泥鳅吗,池塘养殖和水泥池养那
做人流前需要检查什么?选人流医院要注意些什
东方国际酒店(阜新太平区)地址好找么,我有些
印尼货币在我国是否可以兑换?
“梭伦和伯利克里所进行的改革,不仅促使新的
太原富士康怎么可以不通过中介直接进厂?
矮个的意思是什么啊?知道的请说下!
和男友一起,两人都睡不着怎么破
京东全球购壳牌机油,瓶身上的喷码都一样。这
A. 腐乳外层蛋白质凝结形成B. 细菌繁殖形成C.
爱尚主题旅馆(阜新细河区)地址在什么地方,想
银龙鱼怎样防止掉眼
现在是月经期间,但排出的是粉红色的液体,会
推荐资讯
小米3每次升级后平安医生计步不准确
我的摄像头驱动安装好了,可是没有画面,是黑
青泥城的意思是什么啊?知道的请说下!
2吨锅炉的风机是怎样配
派酒店(南站右安门店)地址有知道的么?有点事
浩物中辰汽车销售地址在哪,我要去那里办事
已知a大于等于b大于0且3a+2b-6=ac+4b-8=0,则c
boogieforce舞蹈教室地址在什么地方,想过去
玉兔胡的意思是什么啊?知道的请说下!
伊卡诺抗菌洗衣中心(沂南店)怎么去啊,我要去
南昌农民公寓大概的价格
上海复旦大学历史系有个黄教授吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?