C++怎么将指针转化为字符串?

int *p;
怎么实现将指针p的值以字符串的形式存放
string s=p;?

std::string s = p.str();

供参考:

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int i = 5, * p = &i;
    char buffer[33];
    string s;
    sprintf(buffer, "%d", *p);//p指向的值
    s = buffer;
    cout << s << endl;

    sprintf(buffer, "%p", p);//指针p的值,即变量i的地址值。
    s = buffer;
    cout << s << endl;

    sprintf(buffer, "%p", &p);//p自身的地址值
    s = buffer;
    cout << s;
    return 0;
}