请教一个shared_prt指针的get函数的返回值是乱码的有关问题

请问一个shared_prt指针的get函数的返回值是乱码的问题我使用两个std::tr::shared_ptr分别指向一个string

请问一个shared_prt指针的get函数的返回值是乱码的问题
我使用两个std::tr::shared_ptr分别指向一个string对象和一个char对象,然后分别输出调用share_prt的get()方法后得到的结果,得到的是下面的内容:

-0a    sp1 pointer: 00395498
-0b    sp2 pointer: A     葺

是什么原因导致了sp2显示的结果这么怪异,可以怎么解决?谢谢!

                                                                            
[解决办法]
引用:
我想通过sp2.get()得到的是sp2指针的地址,并不是想知道里面的内容!怎么才能得到sp2指针的地址,不是显示成:A     葺

非得用 cout 的话,可以当 void* 输出,或者也可以用 printf。

    std::cout << (void*)sp2.get() << std::endl;
    printf("%p\n",sp2.get());