实现链表时的等号
Equal sign when implementing a linked list
当您尝试切换指针时,"="的含义是什么?
例如:current->next = previous
和current = previous
。
让我们进行第二个作业,current = previous
。 在这里,小框是指针本身的值,而右侧的矩形是它们指向的内容。
作业前:
+---+ +-----------+
current | --|--------> | Obj1 |
+---+ +-----------+
+---+ +-----------+
previous | --|--------> | Obj2 |
+---+ +-----------+
赋值后,current
和 previous
都指向对象 Obj2。
+---+ +-----------+
current | --|--+ | Obj1 |
+---+ | +-----------+
|
+---+ +-----> +-----------+
previous | --|--------> | Obj2 |
+---+ +-----------+
重要要点:
- 对于普通的原始指针,
current
过去指向的原始 Obj1 保持不变。 它不会因转让而"删除"或销毁。 - 事实上,该任务既没有修改
Obj1
,也没有修改Obj2
本身。 - 如果您更改 Obj2(例如,使用
*current = func()
),那么当您通过current
或previous
访问(读取)它时,它将反映其更改的状态。
记住指针存储内存地址 - 非常重要,内存地址只是数字。因此,当您将指针分配给另一个指针时,您只需在其中放置一个新数字(即地址)。
相关文章:
- 如果没有malloc,链表实现将失败
- 不了解链表实现,请帮忙.C++
- 使用链表实现堆栈时出错
- 如何编写一个类似于kernellist_head的c++风格的双链表实现
- C++中链表实现的问题
- 链表实现 c++
- 难以理解链表实现(结构部分)?
- 为什么下面的使用链表实现线性队列的代码返回垃圾值然后崩溃
- 如何将自己的链表实现从存储整数更改为存储个人数据
- 在我的C++链表实现中取消引用节点指针,给出意想不到的结果
- C++ 中堆栈的链表实现
- c++ 中 if 语句中的多个条件(通过链表实现堆栈)
- C++ 访问数据的链表实现
- 使用链表实现队列
- 此链表实现中的错误
- 试图用c++编写我自己的链表实现,在点击列表中的3个元素后编写segfault代码
- 通过数组实现BST,通过链表实现堆
- 从后到前显示使用链表实现的队列
- C++链表实现多数据插入
- 反转使用链表实现的堆栈