有很多种方法,如1)你可以将这两个返回值封装成一个类,然后返回这个类 。 2)你可以通过指针。这个方法较麻烦:用一个数组,数组中有要返回的两个值的指针。然后返回指向这个数组的指针。 3)......同志,你可以将问题再描述清楚一些吗?如用个实例,这样我可以解释的更清楚一些。
所有的C程序必须定义一个称之为main的外部函数,这个函数是程序的入口,也就是当程序启动时所执行的第一个函数,当这个函数返回时,程序也将终止,并且这个函数的返回值被看成是程序成功或失败的标志,如果在到达main函数体的末尾时没有遇到返回语句 ,它就被看看成是执行了return 0; 语句。
C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数,一个C程序总是从main()函数开始执行的
在最新的C99中,main函数只有两种标准形式:
int main(void ) { }
int main(int argc ,char *argv[ ]) { }
在C99之前,main函数返回类型常常被省略,采用默认类型 int,其实,如果没有返回值, 编译器会给你加上。
老版本的C代码,将会发现程序常常以
main()
这种形式开始。C90标准允许这种形式,但是C99标准不允许。因此即使你当前的编译器允许,也不要这么写。
你还可能看到过另一种形式:
void main()
有些编译器允许这种形式,但是还没有任何标准考虑接受它。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地表示:void main( ) 的定义从来就不存在于 C++ 或者 C 。所以,编译器不必接受这种形式,并且很多编译器也不允许这么写,这个形式只是编译器扩展的,并不是属于C标准。。
坚持使用标准的意义在于:当你把程序从一个编译器移到另一个编译器时,照样能正常运行。
返回值:
由于是 int main( ..) 那么当时 应当返回 int 但是 return 2.3 ;也能运行正确,这是因为编译器自动转换2.3为int,截断后为return 2;
如果写为 return "abc";那么会报错, error C2440: “return”: 无法从“const char [4]”转换为“int”
有两种解决办法,一种是,将两个返回值存在数组里,然后将数组的地址返回;第二种是用参数传递,在主函数里声明两个变量,参数传递时用引用 &,这样也可以把值带回主函数。
第一种是,将两个返回值存在数组里,然后将数组的地址返回;
第二种是用参数传递,在主函数里声明两个变量,参数传递时用引用 &,这样也可以把值带回主函数。
可以通过指针:就是定义指针,将要返回的变量的地址赋值给指针,然后把地址传入函数中进行运算就行了。