Skip to content

Latest commit

 

History

History
24 lines (24 loc) · 1.71 KB

指针和引用有什么区别呢?.md

File metadata and controls

24 lines (24 loc) · 1.71 KB
  1. 基本概念:
    • 指针是一个变量,其值为另一个变量的地址,即直接存储了内存中的一个位置。可以通过解引用操作来访问或修改指针指向的数据。
    • 引用是一个变量的别名,对引用的操作就是对被引用变量的操作。引用在声明时必须初始化,并且不能改变引用的对象。
  2. 语法:
    • 指针:类型 *指针名;
    • 引用:类型 &引用名 = 被引用变量;
  3. 空值:
    • 指针可以有空值(NULL, nullptr),表示它不指向任何对象。
    • 引用必须连接到一块合法的内存,一旦绑定到一个对象上,就不能再改变引用的目标。
  4. 初始化:
    • 指针可以在任何时候被初始化,也可以先声明后赋值。
    • 引用在声明的时候必须被初始化,并且一旦指定了一个对象后,就不能再引用其他对象。
  5. 内存地址:
    • 指针本身是一个独立的变量,因此除了能存储地址之外,还有自己的内存地址。
    • 引用并不占据内存空间,它只是原始变量的一个别名。
  6. 操作符:
    • 指针使用*进行解引用,用以访问目标变量;使用&取得一个变量的地址。
    • 引用使用&在声明时建立关联,之后无需特殊操作符,就像操作普通变量一样。
  7. 用途差异:
    • 指针的灵活性更高,更适合于执行复杂的内存操作,例如动态内存分配、数组遍历等。
    • 引用通常用作函数参数或返回值,以简化代码和避免指针可能导致的错误。
  8. 重新赋值:
    • 指针可以被重新赋值,指向另一个不同的地址。
    • 引用一旦被绑定到一个对象上,就不能改变这个绑定关系。