欢迎光临

木子屋

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

作者: dnawo

日期: 2010-11-22 03:44 PM

分类: Win编程

内容: 复制内容到剪贴板 程序代码#include <iostream>
using namespace std;
int main()
{
int i=1;
cout<<&i<<endl;

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

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.803 ms

返回

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

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.803 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.834 ms

返回