什么解引用是 `*` 符号,引用是 `&` 符号 ?

为什么解引用是 * 符号,引用是 & 符号

阅读 3.9k
2 个回答

在计算机编程中,解引用和引用的符号约定主要是出于历史原因和符号的可用性考虑。虽然不同的编程语言可能使用不同的符号,但在一些主要的编程语言中,解引用通常使用 * 符号,而引用通常使用 & 符号。

解引用(Dereferencing)使用 * 符号的原因:

  • * 符号在数学和计算机领域通常表示乘法。将其用于解引用操作可以形象地表示从指针指向的地址中取出数据。
  • 早期的编程语言(如C和C++)选择了 * 符号作为解引用符号,可能部分是因为符号在键盘上容易键入,并且在打字机时代也很常见。

引用(Referencing)使用 & 符号的原因:

  • & 符号在数学中通常表示取地址操作(取变量的引用或地址)。这与引用的概念相符,因为引用实际上是一个变量的地址别名。
  • 类似于解引用,早期的编程语言选择了 & 符号作为取地址操作的符号,可能也是因为其易于键入和使用。

需要注意的是,不同的编程语言可能会有不同的符号约定,尤其是一些不使用指针的高级编程语言。例如,在Python中,没有直接的指针操作,因此没有类似的解引用和引用的符号。在不同的编程环境中,符号的选择可能会因设计偏好、历史和语法规则而有所不同。

gpt3.5

我理解,就是保持语义和使用的一致性
引用的含义就是将一个变量关联到另一个变量的地址上,所以使用取地址符 &
解引用用*,从地址获取变量,这与指针的使用是一致的。
如果要问“取地址为何要用 &”,“指针为什么使用 * ”,我确实不知道。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏