如果我们声明:
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++ 指针和字符串寻址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34523926/