我们都知道, C语言中的函数只能返回一个值。那么我们如何实现返回多个值的目的。
好吧, 首先看一下函数的声明。
int foo( int arg1, int arg2);
因此, 我们可以在此处注意到, 该函数的接口仅通过参数和返回值。 (除非我们谈论修改函数内部的全局变量)
让我们更深入地看……即使一个函数只能返回一个值, 但该值可以是指针类型。没错, 现在你猜对了!
我们可以声明函数, 使其返回结构类型的用户定义变量或指向它的指针。通过结构的属性, 我们知道C中的结构可以容纳多个非对称类型的值(即, 一个int变量, 四个char变量, 两个float变量等等)
如果我们希望函数返回相同数据类型的多个值, 则可以返回指向该数据类型数组的指针。
我们还可以通过使用函数的参数使函数返回多个值。怎么样?通过提供指针作为参数。
通常, 当一个函数需要返回多个值时, 我们使用一个指针作为返回值, 而不是使用多个指针作为参数。
请参阅
如何从C或C ++中的函数返回多个值?
更多细节。