引用的本质

 引用共用同一个内存空间,只是一个别名。

#include <iostream>
using namespace std;

int main(void)
{
    int a=10;
    int &b=a;
    
    printf("&a:%d\n",&a);
    printf("&b:%d\n",&b);
    
    cout<<"hello..."<<endl;
    
    return 0;    
}

运行结果:

 

下列结构体占多少字节?

struct Teacher
{
    char name[64];  //64字节
    int age;        //4字节  内存对其故8字节
    
    int &a;            //32位  4字节  64位  8字节
    int &b;            //32位  4字节 
};

int main(void)
{
    printf("sizeof(Teacher):%d\n",sizeof(Teacher));
    
    return 0;
}

运行结果:

引用的本质:

引用的本质:

 

//3引用的本质
void modifyA(int &a1)
{
    a1 = 100;
}

void modifyA2(int *const a1)
{
    *a1 = 200;  //实参的地址  去间接的修改实参的值
}
int main(void)
{
    int a =10;
    modifyA(a); //指向这个函数调用的时候,我们程序员不需要取a得地址
    printf("a:%d \n",a);
    
    modifyA2(&a); //如果是指针  需要我们程序员手工的取实参的地址
    printf("a:%d \n",a);
    
    return 0;
}

运行结果:

间接赋值:

 

 

posted @ 2018-09-13 23:02  Liu_Jing  Views(174)  Comments(0Edit  收藏  举报