如果我们声明:
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/