如果我们声明:

int i;
int *ptr1 = &i;
*ptr1=10;
cout << ptr1;


这里ptr1将给出地址。
但:

char *ptr2;
ptr2="Priyesh";
cout << ptr2;


在这里它将给出字符指针的内容。
为什么会有这样的差异?

最佳答案

operator <<是专门为char指针重载的-假设是,如果您尝试打印char指针,则实际上要打印它指向的字符串。

如果要与其他任何指针一样打印,请首先将其强制转换为void*

char *ptr2;
ptr2="Priyesh";
cout << static_cast<void*>(ptr2);


(或cout << (void*)ptr2;

关于c++ - C++指针和字符串寻址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34523926/

10-13 03:36