conststring与conststring(C++中的引⽤)
不带的是⼀个常对象,带&是⼀个常引⽤,那么什么叫常引⽤呢?
指针和引⽤的定义和性质区别:
指针:指针是⼀个变量,只不过这个变量存储的是⼀个地址,指向内存的⼀个存储单元;
引⽤:是跟原来的变量实质上是同⼀个东西,只不过是原变量的⼀个别名⽽已。如:
int a=1;int *p=&a;
int a=1;int &b=a;
上⾯定义了⼀个整形变量和⼀个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。
⽽下⾯2句定义了⼀个整形变量a和这个整形a的引⽤b,事实上a和b是同⼀个东西,在内存占有同⼀个存储单元。且引⽤⼀定指向⼀个对象,所以在C++⾥,引⽤应被初始化。
★相同点:
1. 都是地址的概念;
指针指向⼀块内存,它的内容是所指内存的地址;引⽤是某块内存的别名。
★区别:
1. 指针是⼀个实体,⽽引⽤仅是个别名;
2. 引⽤使⽤时⽆需解引⽤(*),指针需要解引⽤;
3. 引⽤只能在定义时被初始化⼀次,之后不可变;指针可变;
引⽤“从⼀⽽终” ^_^
4. 引⽤没有 const,指针有 const,const 的指针不可变;
5. 引⽤不能为空,指针可以为空;
6. “sizeof 引⽤”得到的是所指向的变量(对象)的⼤⼩,⽽“sizeof 指针”得到的是指针本⾝(所指向的变量或对象的地址)的⼤⼩;sizeof 指针
typeid(T) == typeid(T&)恒为真,sizeof(T) == sizeof(T&)恒为真,但是当引⽤作为成员时,其占⽤空间与指针相同(没到标准的规定)。
7. 指针和引⽤的⾃增(++)运算意义不⼀样;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论