#include <iostream>
using namespace std;
int main()
{
int i = 5, j = 6;
int& r = i;
void* pi, * pj;
int *addr;//addr表示所指向的变量的地址,而&addr表示取addr本身所在的地址
int dis;
pi = &i;
pj = &j;
dis = (int)pj - (int)pi;
//将一个int型的数据强制转换为一个int*类型的数据
//若addr为一个int型变量是可以直接赋值,但是此时并不清楚地址所指向的是何种数据,所以需要进行int*类型的转换才能取到正确的数据内存区域
addr = (int*)((int)pj + dis);
cout << pi << endl;
cout << pj << endl;
cout << &pi << endl;
cout << &pj << endl;
cout << addr << endl;
cout << &addr << endl;
cout << &dis << endl;
cout << dis << endl;
return 0;
}