Ponteiro de um caractere em C ++

Indo pelos livros, a primeira linha de cout deve me imprimir o endereço do local onde ovariável de caractere b é armazenado, o que parece ser o caso dovariável int a também. Mas a primeira instrução cout mostra uma diferença'dh ^ #' enquanto a segunda instrução imprime corretamente um valor hexadecimal'ox23fd68'. Por que isso está acontecendo?

 #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;
    }

questionAnswers(2)

yourAnswerToTheQuestion