美文网首页
C++中的指针的引用

C++中的指针的引用

作者: IT孤独者 | 来源:发表于2016-12-29 11:48 被阅读0次

C++提供了&引用变量类型的定义,另外还提供了一个const限定符。

引用类型的变量实际上是一个别名,这个功能类似数组的名字。

从某种意义上说引用类型和指针类型提供了类似的操作手段,只不过一个保留原有变量的访问手段,一个需要使用*或这个->的访问手段,他们如果没有const的限定符,都可以修改原有内存空间中的值。不过引用是别名指针是实际存在的内存变量,这是一个本质的区别。

C++提供引用的机制有几个用途,这些方面的用途是指针无可替代的:

1. 定义赋值构造函数(重载操作符的特例)

2. 定义拷贝构造函数

3. 重载操作符

4. 配合STL算法库定义判定式的函数或者操作类的函数

C++的引用机制如果和指针是相同的,那么引用机制很可能会被剔除掉,但是,C++并没有这么做,也就是引用有其本身的意义。上面提到的几个个应用场景是我能想到的,可能还有其他的场景,欢迎指正。

指针和引用就其他方式而言基本上可以等同,所以我不是很情愿在代码中看到所谓的“指针的引用”,因为这种类型的引用是没有任何实际的意义,他并没有改变指针变量的访问方式,也没有提供额外的效率提升,重要的是它还会引发一些不知名的编译错误,举个例子:

源码 编译错误

从上面的源码和编译错误可以看出int * 的类型的变量是不能够给const int * & 的变量赋值的,但是可以给 int * & 的变量赋值,也可以给 const int * 的变量赋值,读者可以自行做个试验。

总结:指针的引用在我目前的掌握是没有任何实际的意义的,如果不想改变指针变量的所指向的空间的值可以定义const TYPE *的形式。

相关文章

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • java中的引用与c++中的指针的区别

    java中的引用与c++中的指针的区别 Java的引用和C++的指针都是指向一块内存地址的,通过引用或指针来完成对...

  • 指针和引用的区别

    参照lyd_253261362的专栏的文章详细介绍=====c++中的引用与指针的区别 c++中的引用与指针的区别...

  • 指针和引用的辨析

    先来看两个图 指针与引用的区别 1.指针在C和C++中均有,而引用是C++独有的特性(*指针申明符号,&引用申明符...

  • C++中的引用和指针

    C++ 引用与指针的比较 引用是 C++ 中的概念,初学者容易把引用和指针混淆一起。 以下程序中,n 是m的一个引...

  • 基于堆栈内存详析 Java函数形参是传值还是引用? | C++指

    Java的引用 及 Java函数形参是传值还是引用 Java中没有指针的说法,Java中的引用就类似于C++的指针...

  • C++知识点

    C++基本方法: C++ memcpy C++基本特性: C++引用(vs指针) C++指针 C++封装: 将...

  • C++之指针和引用

    指针和引用的区别? 在C++的编码中我们发现很多地方都大量地使用引用,能用指针实现的功能改用引用几乎也能实现,甚至...

  • C++中的指针的引用

    C++提供了&引用变量类型的定义,另外还提供了一个const限定符。 引用类型的变量实际上是一个别名,这个功能类似...

  • C++入门系列博客三 引用和指针

    C++ 引用和指针 作者:AceTan,转载请标明出处! 引用和指针对于C++来说很重要,是学习C++绕不过去的一...

网友评论

      本文标题:C++中的指针的引用

      本文链接:https://www.haomeiwen.com/subject/jlnuvttx.html