最近在寫鏈表時經常用到p=p->next,用來尋找下一個節點,於是便產生了一個疑問,當p=p->next時,p原來的地址不會被覆蓋嗎?
答案是不會,我的理解:如果把P比喻成人,家比喻成地址那麼有
P沒有移動時:
P移動後,即p=p->next時:
那麼雖然P移動到了P->next家,但是P原來的家還是存在的,也就是原來的地址沒有還在,變的時人的位置,也就是P的位置。在通俗一點就是P買了新房子,於是搬到了新家,但舊房子還是在那原來的位置,你不能說因爲P搬了個家然後舊房子就憑空消失了吧?
同理p->next=p也是一樣,只是改變了位置,地址還在,但這種寫法一般用不到,因爲寫了也沒啥用,而且寫完之後p->next的地址也找不到了。比如一個鏈表p,p->next,p->next->next ·····,如果用p->next=p寫完之後鏈表就變了了p,p,p········