1

我正在学习c++ 指针,我有以下问题。

例如,当我声明三个这样的变量时:

int a = 0, b = 1, c = 2;

是否会有变量的地址在彼此之前......就像当地址a结束时,地址是否b立即开始?

另外,请提供一些教程或书籍的链接,以便我了解计算机如何使用内存(位,字节......),因为我不太了解计算机,变量和数据的工作原理,我可以'任何地方的有用链接。

提前致谢 :)

4

2 回答 2

2

这取决于编译器如何为变量分配地址。

在您的情况下,地址可能是连续的,也可能不是。

您可以简单地从代码中验证为:

#include"iostream"

using namespace std;

int main()
{
    int a = 0, b = 1, c = 2;

    cout<<"Address of A : "<<&a<<endl<<"Address of B : "<<&b<<endl<<"Address of C : "<<&c<<endl;

    return 0;
}

因此,如果您需要调整变量的地址,请始终获取该类型的指针,然后使用指针来访问或更改变量。

例子 :

int *p_a = &a;
int *p_b = &b;
int *p_c = &c;
于 2013-05-19T10:38:33.590 回答
1

这取决于编译器。编译器根据方法的其余部分重新排列它们可能会更好。

不管怎样——为什么要担心?

于 2013-05-19T10:26:26.567 回答