变量的地址是在彼此之后相互宣告的吗?

时间:2013-05-19 10:11:18

标签: c++ variables memory-address

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

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

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

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

此外,请提供一些教程或一些书籍的链接,以便我了解计算机如何使用内存(位,字节...),因为我不太明白计算机,变量和数据是如何工作的我无法在任何地方找到有用的链接。

提前致谢:)

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

由编译器决定。根据方法的其余部分,编译器可能更好地重新排列它们。

无论如何 - 为什么担心?