Usando% f para imprimir una variable entera

La salida del siguiente programa c es: 0.000000 ¿Hay una lógica detrás de la salida o el compilador de la respuesta depende o simplemente estoy obteniendo un valor de basura?

#include<stdio.h>

int main()
{
    int x=10;
    printf("%f", x);
    return 0;
}

PD: - Sé que tratar de imprimir un valor entero usando% f es estúpido. Solo estoy preguntando esto desde un punto de vista teórico.