012_常引用,引用就是一个常指针

//常量引用
#if 1
void test()
{
    //普通引用
    int a = 10;
    int &b = a;
    printf("b:%d\n", b);

    /*
        引用就是一个常量指针
        Type &p  ==>  Type * const p
        常引用
        常引用让变量(引用) 拥有只读属性
    */
    int x = 20;
    const int &y = x;// ==> const int * const y 不能通过y去修改x了
    //y = 21;

    //常引用的初始化
    {
        //1 用变量 初始化常引用
        int x1 = 10;
        const int &y1 = x1;//用x1变量去初始化 常引用
    }

    {
        //2 用字面量 初始化 常引用,会单独的分配内存空间
        const int a = 40;//在c++中是真正的常量, c++编译器把a放在符号表中存在符号表中
        //int &m = 41;//编译不过 普通引用 引用一个字面量 请问字面量有没有内存地址? 没有
        //引用 就是给内存取多个门牌号 (多个别名) 
        const int &m = 41; //c++编译器会为m 分配内存空间, 并将引用名m作为这段空间的别名
        printf("m = %d\n", m);//使用字面量对const引用初始化后,将生成一个只读变量
    }
}
#endif
//常引用的函数调用
#if 0
struct Teacher
{
    char name[64];
    int age;
};

//void printTeacher(const Teacher  * const myt)
void printTeacher(const Teacher &myt)//引用是一个常指针
{
    //常引用 让 实参变量 拥有只读属性 
    //myt.age = 33;
    printf("myt.age:%d \n", myt.age);
}
void test()
{
    Teacher  t1;
    t1.age = 36;
    printTeacher(t1);
    cout << "hello..." << endl;
}
#endif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值