理解指针和变量

时间:2014-08-15 08:28:48

标签: variables pointers memory-management

我试图了解程序如何使用变量,我只想问一些事情。我使用以下代码片段来解释我的问题。

int x=10;
int *p;
p=&x;       // now p stores the address of the variable x

这里P指向(保留地址) X 。并且 P 本身有一个地址。我认为应该有另一个指向这个指针的指针。如果是这样,指针驻留在哪里?这是一个文件系统概念吗?同样在以下情况中:

int x=10;

我们的程序在哪里找到变量 X 的地址,以便它可以访问存储在 x 引用的地址中的值。 X 它自我作为指针吗?如果是这样,那么应该有办法访问 X 的地址,该地址包含一个包含整数值 10 的地址。

如果我是对的:对于声明的每个变量,都有一个指针(或可能是一个索引表)指向变量的地址,这样我们就可以使用地址处的值由声明的变量引用。所以我的问题是在哪里?

如果我错了:我的问题会帮助我更好地理解它吗?

1 个答案:

答案 0 :(得分:0)

构建程序时,编译器(在某些情况下是链接器)用内存地址或寄存器替换每个变量名。

因此,程序的可执行映像(例如,Windows上的exe文件)不包含任何这些变量,只包含普通的内存地址和寄存器。