1

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

例如:current->next = previouscurrent = previous

4

1 回答 1

4

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

分配前:

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

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

赋值后,两者都current指向previous 对象Obj2。

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

重要要点:

  • 对于一个普通的原始指针,原来指向的 Obj1current没有改变。它不会因分配而“删除”或破坏。
  • 事实上,赋值既不修改Obj1也不Obj2修改它们自己。
  • 如果您更改 Obj2(例如,使用),那么当您通过*current = func()访问(读取)它时,将反映其更改的状态。 currentprevious
  • 记住指针存储内存地址非常重要,而内存地址只是数字。因此,当您将指针分配给另一个时,您只是在其中放置了一个新数字(即地址)。
于 2013-11-04T00:11:01.603 回答