引用的基本概念和本质探索

a) 在C++中新增加了引用的概念

b) 引用可以看作一个已定义变量的别名

c) 引用的语法:Type& name = var;

d)引用做函数参数那?(引用作为函数参数声明时不进行初始化)

#include <iostream>

using namespace std;

struct Teacher 
{
    int &a;
    char &b;
};

int main()
{
    int a = 10;//编译器分配4个字节内存空间 a为内存空间的别名
    int &b = a;//b就a的别名
    printf("&b:%d\n",&b);//b有自己的内存空间
    printf("b:%d\n",b);//10
    a = 11;//直接赋值
    {
        int *p =&a;
        *p = 12;//通过指针间接赋值
        printf("a:%d\n",a);//12
    }
    b = 14;//通过b间接赋值

    printf("a:%d\n",a);//14

    {
        char s ='c';
        char &c = s ;
        printf("&s:%d\n",&s);//
        printf("&c:%d\n",&c);// s和c的地址一样 说明引用是对同一块地址空间的门牌号
        printf("sizeof(Teacher):%d\n",sizeof(Teacher));//8  
        /*
        1) 引用在C++中的内部实现是一个常指针
           Type& name Type* const name
        2)C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大小与指针相同。*/
    }
    system("pause");
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值