我正在学习c++ 指针,我有以下问题。
例如,当我声明三个这样的变量时:
int a = 0, b = 1, c = 2;
是否会有变量的地址在彼此之前......就像当地址a
结束时,地址是否b
立即开始?
另外,请提供一些教程或书籍的链接,以便我了解计算机如何使用内存(位,字节......),因为我不太了解计算机,变量和数据的工作原理,我可以'任何地方的有用链接。
提前致谢 :)
我正在学习c++ 指针,我有以下问题。
例如,当我声明三个这样的变量时:
int a = 0, b = 1, c = 2;
是否会有变量的地址在彼此之前......就像当地址a
结束时,地址是否b
立即开始?
另外,请提供一些教程或书籍的链接,以便我了解计算机如何使用内存(位,字节......),因为我不太了解计算机,变量和数据的工作原理,我可以'任何地方的有用链接。
提前致谢 :)
这取决于编译器如何为变量分配地址。
在您的情况下,地址可能是连续的,也可能不是。
您可以简单地从代码中验证为:
#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;
这取决于编译器。编译器根据方法的其余部分重新排列它们可能会更好。
不管怎样——为什么要担心?