#include<iostream> using namespace std; int main() { char a = 'a'; cout << "字面值: " << a << endl; cout << "&a: " << &a << endl; return 0; }
我的输出竟然是这样:
a
a烫烫烫烫
原来是由于C++标准库中I/O类对<<操作符重载,因此在遇到字符型指针时会将其当作字符串名来处理,输出指针所指的字符串。
应该用
cout << static_cast<const void*>(&a) << endl;来代替上面的cout << "&a: " << &a << endl;