变量的地址是不是一个接一个声明,一个接一个
Do the addresses of variables, declared just after each other, precede each other?
我正在学习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;
这取决于编译器。编译器根据方法的其余部分重新排列它们可能会更好。
不管怎样,为什么要担心?
相关文章:
- 为什么我不能在一个类的不同行中声明和定义成员变量?
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 在C++中声明一个函数时,它需要有函数本身的参数吗
- C++ 警告:在一个声明中将截断从双精度初始化为浮点数,但在另一个声明中则不初始化
- 在c++中的复制构造函数/一个声明语句中的初始化的延续中使用chain方法
- 错误:"int pow(double,int)"与上一个声明int pov(double a,int
- 为什么一个接一个声明的两个变量在内存中不相邻?
- 如何创建一个声明来自另一个类的变量的类
- 如何在c 中留下一个声明的函数,例如haskell中的``undefined''
- 来自上一个声明的 G++ 错误,由于包含中的函数名称重复而导致的错误
- 将内部类名声明为另一个声明的一部分
- 添加两个整数,但一个声明为"int",另一个声明为"auto"?
- 一个声明中多个函数的原型
- 强制构造像“Foo(12,3);”这样的未命名变量仍然是一个声明符
- 错误:一个声明中有多个类型
- 在一个声明中出现多个类型的问题
- 变量的地址是不是一个接一个声明,一个接一个
- c++错误:在一个声明中包含多个类型
- if语句的分支不能仅仅是一个声明
- visual studio 2010 -智能感知:期望在c++中有一个声明