gpt4 book ai didi

c++ - 实现链表时的等号

转载 作者:行者123 更新时间:2023-11-30 01:56:26 29 4
gpt4 key购买 nike

当你尝试切换指针时,“=”是什么意思。

例如:current->next = previouscurrent = previous

最佳答案

让我们进行第二个作业,current = previous。在这里,小方框是指针本身的值,而右边的矩形是它们指向的东西。

作业前:

         +---+          +-----------+
current | --|--------> | Obj1 |
+---+ +-----------+

+---+ +-----------+
previous | --|--------> | Obj2 |
+---+ +-----------+

赋值后,currentprevious指向对象Obj2。

         +---+          +-----------+
current | --|--+ | Obj1 |
+---+ | +-----------+
|
+---+ +-----> +-----------+
previous | --|--------> | Obj2 |
+---+ +-----------+

重要要点:

  • 对于普通的原始指针,current 用来指向的原始 Obj1 没有改变。它不会因分配而被“删除”或破坏。
  • 事实上,赋值修改Obj1Obj2 本身。
  • 如果您更改 Obj2(例如,使用 *current = func()),那么当您通过或者访问(读取)它时,它的更改状态将反射(reflect)出来 currentprevious.
  • 记住指针存储内存地址非常重要,而内存地址只是数字。因此,当您将指针分配给另一个指针时,您只是在其中放置了一个新数字(即地址)。

关于c++ - 实现链表时的等号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19759775/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com