木子屋 Dnawo's BLOG

C++程序每次运行时同一变量的内存地址都相同的解释

👤 dnawo 📅 2010-11-22 👁 5868 👍 0 💬 0 🔄 本站原创
#include <iostream>
using namespace std;

int main()
{
    int i=1;
	cout<<&i<<endl;
	
    return 0;
}

现象:程序每次运行时,&i的值都相同,都是0012FF44。
疑问:i属于局部变量,保存在栈中,它占据的内存是编译器自动分配和释放的,那怎么可能程序每次运行i都保存在同一地址中?
答疑:在程序运行时,程序被分配到一块内存,程序以此做为基地址,然后再在基地址上作偏移来使用内存,所以,&i实际上是一个偏移地址,它的实际地址=基地址+偏移地址。

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 世界上唯一不用努力就能得到的只有年龄 下一篇 → C++默认构造函数