Confusão sobre o fato de que o ponteiro não inicializado aponta para qualquer lugar

#include <stdio.h>

int main(void)
{
    int *ptr;
    printf("%p", ptr); // Error: uninitialized local variable 'ptr' used
                       // Output is "0"
}

eu estou lendoC-FAQ&nbsp;sobre ponteiro nulo. E diz que o ponteiro não inicializado pode apontar para qualquer lugar. Isso significa que aponta para um local aleatório na memória? Além disso, se esta afirmação for verdadeira, por que ocorre um erro se eu tentarprintf("%p",ptr)? Como o ponteiro não inicializadoptr&nbsp;aponta para algum local aleatório, parece que ele deve imprimir esse local aleatório!