どうして
まずプログラムを見てください.
0012FF7F 0012FF7F
#include
using namespace std;
int main()
{
char c = 'A';
cout << &c << endl;
return 0;
}
結果は文字化けして、どうしてですか?coutは&cをchar*形式としているため、文字列を出力すると考えられ、以下のように検証されます.int main()
{
char c = 'A';
cout << &c << endl;
printf("%s
", &c);
return 0;
}
では、発生した文字化けしが同じであることがわかりますが、cのアドレスを正しく出力するにはどうすればいいのでしょうか.以下を参照してください.#include
using namespace std;
int main()
{
char c = 'A';
printf("%p
", &c);
cout << (void *)&c << endl;
return 0;
}
結果:0012FF7F 0012FF7F