C语言中的指针取地址均是指虚拟地址,真实的物理地址只有操作系统知道。
// visualizeb.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
printf("location of code :%p\n",(void*)_tmain);
printf("location of heap :%p\n",(void*)malloc(1));
int x = 3;
printf("location of stack :%p\n",(void*)&x);
system("pause");
return x;
return 0;
}
在win 7 64位操作系统上执行结果如下:
可以观察数据区,代码区,栈段地址,都是虚拟地址哦!