Todos sabemos que una función en C puede devolver solo un valor. Entonces, ¿cómo logramos el propósito de devolver múltiples valores?
Bueno, primero echa un vistazo a la declaración de una función.
int foo(int arg1, int arg2);
Entonces podemos notar aquí que nuestra interfaz con la función es solo a través de argumentos y valores de retorno. (A menos que hablemos de modificar los globales dentro de la función)
Echemos un vistazo más profundo … Aunque una función puede devolver solo un valor, ese valor puede ser de tipo puntero. Eso es correcto, ¡ahora estás especulando bien!
Podemos declarar la función de tal manera que devuelva una variable definida por el usuario de tipo estructura o un puntero a ella. Y por la propiedad de una estructura, sabemos que una estructura en C puede contener múltiples valores de tipos asimétricos (es decir, una variable int, cuatro variables char, dos variables float, etc.)
Si queremos que la función devuelva múltiples valores de los mismos tipos de datos, podríamos devolver el puntero a la array de esos tipos de datos.
También podemos hacer que la función devuelva múltiples valores usando los argumentos de la función. ¿Cómo? Proporcionando los punteros como argumentos.
Por lo general, cuando una función necesita devolver varios valores, usamos un puntero a cambio en lugar de varios punteros como argumentos.
Consulte ¿Cómo devolver múltiples valores de una función en C o C++? para más detalles.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA