"printf" te retorna el número de caracteres que ha escrito. Luego ese valor, lo puedes guardar en una variable, y hacer con ella lo que quieras.
El "main" no es una función normal. Es el punto de entrada dle programa, donde comienza a ejecutarse. Lo que retorna, es un valor que leerá el sistema operativo.
Lo de "int printf(const char*, ...);" es la declaración de la función "printf". Esto es, solo el prototipo para que sepas cual es su valor de retorno (int), y qué parámetros hay que pasarle (const char*, ...).
(Lo del "..." ignóralo ahora xD)
Imagina que quieres elevar al cuadrado un número. Hay una función en la librería "math.h" que es:
float pow(float base
, float exponente
);
Así que si quieres elevar un número al cuadrado, o a cualquier otro exponente, la llamas:
float num = pow(10, 5);
Ahora la variable "num" tendrá el valor 100000. Eso es el retorno.
Si aun no te queda claro, puedes ver este vídeo, de
Minidosis, una página para aprender principalmente C++. Pero no importa, vale para C igual.
http://www.minidosis.org/#/actividades/Cpp.Funciones.Subprogramas.vid*Lo de "cout" y "cin" son formas de mostrar en pantalla, y leer entrada, como printf y scanf*
Llámalo subprograma, llámalo función, =.