我正在测试通过char变量(我称为“ noob”)和char指针变量(适当命名为“ noobPtr”)输出相似数据的方法。我给“ noob”分配了字母“ a”,然后给“ noobPtr”分配了“ noob”的存储位置。然后在程序中,我想同时使用两个变量输出字母“ a”和使用两个变量输出内存位置。在查看程序的内存地址输出时,我注意到的一件有趣的事情是,它输出了一堆看起来不像典型内存地址的垃圾。(输出是a╠╠╠╠ä₧ɪçp≈=)
我试图研究为什么会发生这种情况,尽管可能是因为我使用char而不是string的事实,因为我在使用string时没有这个问题。
int main() {
char noob = 'a';
char * noobPtr = &noob;
cout << "Memory Variable (noob / *noobPtr): " << noob << " " << *noobPtr << " <<< They should be the same" << endl << endl;
cout << "Memory Address of noob (&noob / noobPtr): " << &noob << " " << noobPtr << " <<< They should also be the same" << endl << endl;
system("PAUSE");
return 0;
}
希望您更多有经验的编码人员会知道为什么会这样。我希望找到一种方法来获取真实的内存位置而不是垃圾符号。