读书人

请教下C和C++为何没有多返回值

发布时间: 2012-05-13 16:39:43 作者: rapoo

请问下C和C++为何没有多返回值?
我在LUA,PYTHON中都看到有。
多返回值有什么不好的地方呢?

[解决办法]
首先,语音规定:函数只能返回一个值,不能是多值的,这是由于结构化思想要求函数要具有“单入口,单出口”。但是由于函数返回值的类型是可以设计的,确实可以通过设定数据类型,通过返回地址的方式“改变”多个参数的值。方法是在是太多了,如
char* fun(){char* p="retun many data!";return p;}
int main(){char* pc=fun();printf("%s\n",pc);return 0;}
实际上,要求函数能“改变”多个外部的值的方法不一定都要采用返回值的办法,我以前在编程时使用过如下的办法:
void func(int *pD,char &Ch){ *pD=7;Ch='z';}
int main(){int Data=1;char Ch='c';func(&Data,Ch);printf("%d,%c\n",Data,Ch);return 0;}

读书人网 >C++

热点推荐