指针和引用的区别

简介: 指针和引用都是C++程序员经常使用的东西,但是他们有什么区别呢?本期我们共同探讨。

1.指针是一个变量,存储的是一个地址,引用跟原来的变量实质上是同一个东西,是原变量的别名。

2.指针可以有多级(但是不能对指针进行取地址,因为地址本身不是变量是一个常量),引用只有一级。

3.指针可以为空(此时指向nullptr),引用不能为NULL且在定义时必须初始化。

4.指针在初始化后可以改变指向(常指针不可以),而引用在初始化之后不可再改变。

5.sizeof指针得到的是本指针的大小(sizeof数组名是数组的大小),sizeof引用得到的是引用所指向变量的大小。

6.当把指针作为参数进行传递时,也是将实参的一个拷贝传递给形参,两者指向的地址相同,但不是同一个变量,在函数中改变这个变量的指向不影响实参,而引用却可以(可以通过对指针解引用改变实参的值,此时跟引用能达到相同的效果)。

7.引用的底层实现还是一个const指针,因此定义一个引用会开辟一个指针大小的内存存放指针,但是引用本身不占内存。

相关文章
|
8天前
|
存储 数据可视化 C++
第九问:能否尽可能详细阐述指针和引用的区别?
在C++中,指针和引用是两个重要的概念,用于操作内存地址和数据。指针是一个存储内存地址的变量,可以动态分配和释放内存;引用是变量的别名,绑定后不可改变指向。指针提供更大的灵活性和控制力,适用于复杂内存操作;引用更直观,适合简化代码并提高可读性。根据实际需求选择合适的工具。
16 0
|
2月前
|
存储 安全 编译器
在 C++中,引用和指针的区别
在C++中,引用和指针都是用于间接访问对象的工具,但它们有显著区别。引用是对象的别名,必须在定义时初始化且不可重新绑定;指针是一个变量,可以指向不同对象,也可为空。引用更安全,指针更灵活。
|
6月前
|
存储 安全 C++
C++中的引用和指针:区别与应用
引用和指针在C++中都有其独特的优势和应用场景。引用更适合简洁、安全的代码,而指针提供了更大的灵活性和动态内存管理的能力。在实际编程中,根据需求选择适当的类型,能够编写出高效、可维护的代码。理解并正确使用这两种类型,是掌握C++编程的关键一步。
87 1
|
2月前
|
存储 C语言
C语言指针与指针变量的区别指针
指针是C语言中的重要概念,用于存储内存地址。指针变量是一种特殊的变量,用于存放其他变量的内存地址,通过指针可以间接访问和修改该变量的值。指针与指针变量的主要区别在于:指针是一个泛指的概念,而指针变量是具体的实现形式。
|
5月前
|
存储 安全 C++
浅析C++的指针与引用
虽然指针和引用在C++中都用于间接数据访问,但它们各自拥有独特的特性和应用场景。选择使用指针还是引用,主要取决于程序的具体需求,如是否需要动态内存管理,是否希望变量可以重新指向其他对象等。理解这二者的区别,将有助于开发高效、安全的C++程序。
38 3
|
5月前
|
存储
头指针和头结点的区别
头指针和头结点的区别
249 1
|
6月前
|
存储 安全 编译器
【C++航海王:追寻罗杰的编程之路】引用、内联、auto关键字、基于范围的for、指针空值nullptr
【C++航海王:追寻罗杰的编程之路】引用、内联、auto关键字、基于范围的for、指针空值nullptr
71 5
|
6月前
|
存储 C语言
一级指针和二级指针的区别
一级指针和二级指针的区别
104 1
|
6月前
|
存储 安全 编译器
C++进阶之路:何为引用、内联函数、auto与指针空值nullptr关键字
C++进阶之路:何为引用、内联函数、auto与指针空值nullptr关键字
53 2