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