关于在 C 中使用指针,我遇到了令人震惊的疑问。因此,我对此进行了很多搜索,但没有得到令人满意的答案。事情是这样的:
我声明了一个 INT 类型的指针和一个 INT 类型的变量(例如 int x、*pointer)。所以,让我们假设它们都占用了 RAM 中的连续地址,分别为 0x102 和 0x106。到目前为止没有任何惊喜。然后,我声明 x = 5。我的内存映射应该是这样的,不是吗?
int x, *pointer;
x = 5;
好的。在大学里,我学会了这样分配指针:
pointer = &x;
我的内存映射应该是这样的:
到目前为止,一切都很好。但问题是:如果我分配了一个这样的指针,而不是上面的:
*pointer = x;
'x'的内存地址不应该存储在指针的内存地址中吗?我一直在想“Memory Map 2”之类的东西,但结果和“Memory Map 1”一样,即0x106地址包含一个垃圾号。那么如果'x'的内存地址没有存储在指针的内存地址中,程序如何知道我想指向哪里呢?这些信息存储在哪里?
这似乎是一个简单的问题,但我无法理解。:(
提前致谢!:)