局部变量的内存位置

时间:2018-10-29 17:47:15

标签: c++

假设我的范围内有两个变量。

int a, b;

可以安全地假设它们将一个接一个地存储在进程的内存中吗? (相差sizeof(int)

2 个答案:

答案 0 :(得分:4)

如果该作用域是局部函数作用域,则否,假设安全是不安全的。该标准对此不提供任何保证。 (与structs相对)

答案 1 :(得分:0)

不,假设是不安全的。 但是大多数情况下,它们会一个接一个地存储在进程的内存中。

喜欢这个:

#include<iostream>
using namespace std;
int main()
{
    int a,b;
    cout<<&a<<endl;
    cout<<&b<<endl;

    int c;
    int d;
    cout<<&c<<endl;
    cout<<&d;

}

以下程序的输出是: enter image description here

在这里,我们可以很容易地注意到这四个地址只是四个连续的内存块(大小不同(sizeof(int))。