常量引用
思考cost int &a = b PK const int &a = 10;
在C++中可以声明const引用
const Type& name = var;
const引用让变量拥有只读属性
//常引用的知识架构 int main(void) { //普通引用 int a=10; int &b=a; printf("b:%d\n",b); //常引用 int x =20; const int &y = x; //常引用 是 让变量 引用只读属性 不能通过y去修改x了 //y = 21; //报错 error: assignment of read-only reference 'y' //常引用 初始化 分为2种情况 //1> 用变量 初始化 常引用 { int x1 = 30; const int &y1 = x1; //用X1变量去初始化 常引用 } //2> 用字面量 初始化 常量引用 { const int a = 10; //C++编译器把a放在符号表中 //int &m = 41; //普通引用 引用一个字面量 字面量有无内存地址 //引用 就是给内存取多个门牌号(多个别名) //printf("&41:%d\n",&41); const int &m = 43; //C++编译器 会 分配内存空间 //43无内存空间,若放在代码区 则放在代码区 } return 0; }
struct Teacher1 { char name[64]; int age; }; //const引用让变量(所指内存空间)拥有只读属性 //void printTeacher(const Teacher1 *const pt) void printTeacher(const Teacher1 &pt) { //pt.age = 33; //const引用让变量(所指内存空间)拥有只读属性 printf("pt.age:%d\n",pt.age); }
const引用结论
1)Const & int e 相当于 const int * const e
2)普通引用 相当于 int *const e1
3)当使用常量(字面量)对const引用进行初始化时,C++编译器会为常量值分配空间,并将引用名作为这段空间的别名
4)使用字面量对const引用初始化后,将生成一个只读变量
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并,获取更多隐藏干货,QQ交流群:859800032 微信公众号:Crystal软件学堂
作者:Liu_Jing bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |