如果我们宣布:
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(ptr2);
(或cout << (void*)ptr2;
)