C++标准库中I/O类对<<操作符重载,因此在遇到字符型指针时会将其当作字符串名来处理,输出指针所指的字符串。因此,我们用static_cast强制类型转换把字符串指针转换成无类型指针即可输出指针地址
#include<iostream>using namespace std;int main() {char *p="abc";cout << p << endl;//"abc"cout << *p << ' ' << (void*) p << endl;cout << *(p+1) << ' ' << static_cast<void*>(p+1) << endl;cout << *(p+2) << ' ' << static_cast<void*>(p+2) << endl;return 0;
}
输出如下
abc
a 0x404001
b 0x404002
c 0x404003