常引用

本文详细解析了C++中常引用的概念与应用,包括如何声明和初始化常引用、使用常引用提升程序效率的方法,以及常引用与普通引用的区别。特别介绍了使用常量(字面量)初始化常引用时C++编译器的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//常引用
#include<iostream>
using namespace std;
//常量引用的只是架构 
 int main01()
 {
     //普通引用
     int a=10;
     int &b=a;
     printf("%d,%d",a,b); 
    //常引用 
    int x=20;
    const int &y=x;//常引用是让 变量拥有只读属性。不能通过y去修改x 
    //y=21;编译会报错
    //常量引用初始化分为两种情况
    //(1)用变量初始化常量引用
    int x1=30;
    const int &y1=x1;//用x1这个变量去初始化常引用
    //(2)用字面量去初始化常量引用
    const int n=40;//c++编译器吧n放在符号表中了,n现在 是常量 
    //int &m=41; //普通引用  引用的是字面量  请问字面量有没有内存地址?没有
                             //41没有内存地址,引用就是给内存 起别名,但是41没内存,所以编译会报错 
    const int &m=42 ;//加个const编译就可以通过了,C++编译器会偷偷的多分配一个内存空间,
                     //但是43还是43没有内存空间。但是他会给m分配一个内存空间,让m这个指针指向这个内存空间        
     
     cout<<"hello"<<endl;
     return 0;
 }
 
 struct teacher
{
    char name[64];
    int age;
};

//C++内部相当于实现的是 void printteacher(const teacher *const myt)
void printteacher(const teacher &myt)

        //常量引用让实参 拥有只读属性 
         cout<<myt.age<<endl; 

}
 
 #include<iostream>
using namespace std;
int main()
{
    teacher t1;
    t1.age =36; 
    printteacher(t1 );
    cout<<"hello"<<endl;
    return 0;
 } 
/*const引用结论
(1)const &int e相当于const int *const e
(2)普通引用相当于const * const e 
(3)当时用常量(字面量)对const引用进行初始化时,C++编译器会为常量值分配内存空间,
   并将引用名作为这段空间的别名。 
(4) 使用字面量对const引用初始化后,将生成一个只读变量。 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值