《唐老师C++》之const引用

发布时间:2017-5-30 19:35:09 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"《唐老师C++》之const引用",主要涉及到《唐老师C++》之const引用方面的内容,对于《唐老师C++》之const引用感兴趣的同学可以参考一下。

const int a = 1; int *p = (int *)&a; *p = 5; printf("%d",a)  //输出1   但a所指内存被修改为5        a为真正意义上的常量,在编译期间已经在符号表中被替换为1,可执行程序不知道符号表的存在,无论怎样用指针修改a的内存,a始终为1 若改为:const int &a = 1; 打印出a=5,a为只读变量 int &a = 1  写法错误,右边必须为变量或加const const int a = 1; int &b  =a;  //语法错误,a已经在编译时被替换为1,int &b = 1当然错误 引用有更好的可读性和实用性 swap(int &a, int &b) { int temp = a; a= b;  b= temp; }           //调用 swap(a, b) swap(int *a, int *b) { int temp = *a;  *a = *b; *b = temp;  }         //调用 swap(&a, &b) 当使用常量对const引用进行初始化时,C++编译器会为常量值分配空间,并将引用名作为这段空间的别名 int &a = 1; 引用也有自己的存储空间 ,即指针,32位中占4字节 int  &a   == int *const  //C++内部就是这样实现引用的 当函数返回值为引用时   若返回栈变量 • 不能成为其它引用的初始值 • 不能作为左值使用   若返回静态变量或全局变量 • 可以成为其他引用的初始值 • 即可作为右值使用,也可作为左值使用 int &fun() { int a =1;   return a; }        //调用时,不能  int b = fun()  (函数返回时a地址已经回收)          ,若函数改为static  int a =1; 则可以

上一篇:Java技术加强之枚举
下一篇:误把main()函数写成mian()函数竟然通过编译

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。