为什么输出char变量的内存位置会打印垃圾?

时间:2019-02-06 13:45:05

标签: c++

我正在测试通过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;
}

希望您更多有经验的编码人员会知道为什么会这样。我希望找到一种方法来获取真实的内存位置而不是垃圾符号。

0 个答案:

没有答案