今天突然发现一个奇怪的现象,就是在C++中用“&”是不能直接得到一个字符变量的地址的
#include<iostream>
using namespace std;
int main()
{
int a;
char b;
cout<<&a<<endl<<&b<<endl;
printf("%p",&b);
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int a;
char b = 'a';
cout<<&a<<endl<<&b<<endl;
printf("%p",&b);
return 0;
}
具体原因是:
C++把"cout << 字符型指针"这种输出格式安排给输出字符串了,就是说它被编译器解释为从指针开始一个接一个地输出内存单元里的字符,直到遇到'\0'时为