每次我们在堆中为链表分配内存时,我们都会得到一个地址,这个地址链接到链表的下一个变量,而head是一个指针,指向链表的初学者节点。
如果我们这样做head = head + 1
那么它指向下一个链表,或者它指向堆的随机内存,或者它指向堆中初学者列表的下一个内存。
它指向第一个元素后面的内存区域,您不应该访问该内存区域。
我认为您将数组的概念与链表混淆了。如果你使用数组,那么head = head + 1
会给你数组中的下一个元素。但是在链表上,每个成员在内存中都有不同的位置,获取该位置的唯一方法是取消引用前一个元素的next
成员
随机内存,或者它指向堆中初学者列表的下一个内存。
假设head
最初指向正确类型的有效对象,则在该语句之后,head
指向它最初指向的对象末尾。 这可能会也可能不会使它成为指向下一个节点的指针,具体取决于许多因素,其中一些因素不受您的控制,但通常head
的新值不是指向下一个节点的指针。
加法运算不知道head
最初指向的对象的重要性。 对于任何类型的指针,此操作都相同。