Puntero de un personaje en C ++

Al pasar por los libros, la primera línea de corte debería imprimirme la dirección de la ubicación dondechar variable b se almacena, lo que parece ser el caso para elint variable a también. Pero la primera declaración cout imprime un extraño'dh ^ #' mientras que la segunda declaración imprime correctamente un valor hexadecimal'ox23fd68'. ¿Por qué está pasando esto?

 #include<iostream>
    using namespace std;

    int main()
    {
        char b='d';
        int a=10;
        char *c=new char[10];
        c=&b;
        int *e=&a;
        cout<<"c: "<<c<<endl;
        cout<<"e: "<<e;
    }

Respuestas a la pregunta(2)

Su respuesta a la pregunta