`
seawavecau
  • 浏览: 754712 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

C++中指针和引用的区别

阅读更多

    虽然使用引用(reference)和指针都可间接访问另一个值,但他们之间有两个重要区别。

第一个区别在于引用总是指向某个对象:定义引用时没有初始化是错误的。

第二个重要区别则是复制行为的差异:给引用复制修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。

    引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义是初始化的原因)。

 

-----------------------------------------------------------------以上引自C++ Primer

 

 

引用和指针

★ 相同点:
1. 都是地址的概念;
    指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。

★ 区别:
1. 指针是一个实体,而引用仅是个别名;
2. 引用使用时无需解引用(*),指针需要解引用;
3. 引用只能在定义时被初始化一次,之后不可变;指针可变;
    引用“从一而终” ^_^
4. 引用没有 const,指针有 const,const 的指针不可变;
5. 引用不能为空,指针可以为空;
6. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
    typeid(T) == typeid(T&) 恒为真,sizeof(T) == sizeof(T&) 恒为真,
    但是当引用作为成员时,其占用空间与指针相同(没找到标准的规定)。
7. 指针和引用的自增(++)运算意义不一样;

★ 联系
1. 引用在语言内部用指针实现(如何实现?)。
2. 对一般应用而言,把引用理解为指针,不会犯严重语义错误。引用是操作受限了的指针(仅容许取内容操作)。

分享到:
评论

相关推荐

    c++中指针和引用的区别

    在 C++ 编程语言中,指针和引用是两个常用的概念,但是初学者容易混淆它们二者之间的区别。在本文中,我们将从概念、函数参数传递和编译角度来阐述指针和引用的区别。 概念上,指针是一个变量,它存放的是变量的...

    C++ 中指针和引用有什么区别详解

    C++ 中指针和引用有什么区别详解 1.从内存上来讲 系统为指针分寸内存空间,而引用与绑定的对象共享内存空间,系统不为引用变量分配内容空间。 2指针初始化以后可以改变指向的对象,而引用定义的时候必须要初始化,...

    C++中指针和引用的区别详解

    C++中指针和引用的区别 指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。 1.指针和引用的定义和性质区别: (1)指针:指针是一个变量,只不过这个变量...

    详解C++中指针和引用的区别

    C++中指针和引用的区别详解 pointer和reference是C++中两个重要的概念,许多开发者对其区别不甚了解,导致编写的代码出现BUG,或者出现不必要的性能损失。下面,我们将详细介绍pointer和reference的区别。 1. ...

    C++中指针和引用的区别分析

    在C++编程语言中,指针和引用是两种非常重要的概念,它们都涉及到变量的间接访问,但在实际使用中有着显著的区别。以下是关于指针和引用的详细分析: 1. **概念上的区别** - **指针**:指针是一个变量,它存储的是...

    C,C++中指针问题详解

    在编程世界里,C 和 C++ 语言中的指针是一个至关重要的概念,它们为程序员提供了直接访问内存的能力,使得高效编程成为可能。本篇将详细阐述指针的相关知识点,包括其定义、用法、操作以及常见陷阱。 首先,我们要...

    简单谈谈C++中指针与引用的区别

    在C++编程语言中,指针和引用都是用来间接访问内存中对象的重要工具...理解并熟练掌握指针和引用的区别,有助于写出更加清晰、健壮的C++代码。在编程实践中,根据场景合理选择使用它们,可以提高程序的可读性和维护性。

    DEVC++中指针所有集合

    本文将深入探讨DEVC++中关于指针的所有集合,包括指针的基本概念、声明、赋值、运算以及在数组、函数和动态内存分配中的应用。 1. **指针基础** - **定义**:指针是一个变量,其值为另一个变量的内存地址。在DEV...

    c++中引用和指针的区别和联系

    C++中的引用和指针 ★ 相同点: 1. 都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名(java中的引用其实也是别名的意思)。 ★ 区别: 1. 指针是一个实体,而引用仅是个别名;2. ...

    简单谈谈C++ 中指针与引用

    在C++编程语言中,指针和引用是两种重要的概念,它们都允许程序员间接访问和操作内存中的对象。虽然它们在形式和用途上有相似之处,但具有本质的区别。 首先,让我们了解一下指针。指针是一个变量,它存储了一个...

Global site tag (gtag.js) - Google Analytics