正如其他人所指出的,
为什么我在定制指针时没有得到地址?请参阅以下代码:代码1:
string s1 {"NAME"};
string *p1 {&s1};
cout<<p1;
给出0x71fcc0,这是有意义的。但是看看当我使用cstyle=string:时会发生什么
char cstring1 [] {"NAME"};
char *cp2 = &cstring1[0];
cout<<cp2<<endl;
在屏幕上打印NAME为什么不打印地址呢?
为什么不打印地址?
因为它是指向char
的指针。当插入字符流时,指向字符的指针与其他指针的处理方式不同。
当指向char的指针插入到字符流中时,会生成指向的字符串,而不是地址。如果指向的字符串不是null终止的,则程序的行为是未定义的。
const char*
被视为一个字符序列,而不是一个指针。
如果你想打印地址,你可以试试这个:
cout<< static_cast<void*>(cp2) <<endl;