首页 > 技术文章 > 指针与引用

sunshine-free 2020-11-17 14:53 原文

  • 引用变量在底层相当于一个指针常量
#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; 
} 

推荐阅读