Variáveis locais de loop for em C

Por que o código a seguir gera sempre o mesmo local de memória?

int x;
for (x = 0; x < 10; x++) {
    int y = 10;
    printf("%p\n", &y);
}

Eu pensei que o local da memória deveria mudar à medida que o loop for é executado, a variável é nova.