为什么这里的结果是输出了一个很大的数,而不是1000呢



long ua    { 1000 };
long long* uptr    { (long long*)&ua };
std::cout << *uptr;

为什么这里的结果是输出了一个很大的数,而不是1000呢

因为long是32位,而long long 是64为
直接把ua的地址赋给long long 指针,则他把超过ua 地址的部分内存也算在内。