我正在学习 c ++指针,我有以下问题。
当我声明例如三个这样的变量时:
int a = 0, b = 1, c = 2;
变量是否会有彼此相对的地址......就像a
的地址结束时,b
的地址是否立即开始?
此外,请提供一些教程或一些书籍的链接,以便我了解计算机如何使用内存(位,字节...),因为我不太明白计算机,变量和数据是如何工作的我无法在任何地方找到有用的链接。
提前致谢:)
答案 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)
由编译器决定。根据方法的其余部分,编译器可能更好地重新排列它们。
无论如何 - 为什么担心?