[問題] 雙重指標的使用
開發平台(Platform): (Ex: Win10, Linux, ...)
Win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
DevC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
各位大大好
我想請問使用雙重指標時
若pp為雙重指標,p為一般指標
使用
1. *pp = p
2. pp = &p
這兩個有什麼不一樣嗎
按照我的理解
1.是將p這個指標的值指派給pp所指向的指標,
2.是將p的位址指派給pp這個雙重指標
結果好像都是讓pp指向p
餵入的資料(Input):
我在Leetcode(#24)的討論看到有些人這樣使用(6、7行),而我交換兩種寫法結果不
一樣讓我一直想不通
ListNode* swapPairs(ListNode* head) {
ListNode **pp = &head, *a, *b;
while ((a = *pp) && (b = a->next)) {
a->next = b->next;
b->next = a;
*pp = b;
pp = &(a->next);
}
return head;
}
還請各位前輩指點,感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.13.87.231
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1497366486.A.E26.html
推
06/13 23:15, , 1F
06/13 23:15, 1F
→
06/13 23:16, , 2F
06/13 23:16, 2F
→
06/13 23:34, , 3F
06/13 23:34, 3F
→
06/14 01:16, , 4F
06/14 01:16, 4F
→
06/14 01:16, , 5F
06/14 01:16, 5F
→
06/14 01:16, , 6F
06/14 01:16, 6F
→
06/14 01:16, , 7F
06/14 01:16, 7F
→
06/14 01:17, , 8F
06/14 01:17, 8F
→
06/14 01:17, , 9F
06/14 01:17, 9F
推
06/14 01:31, , 10F
06/14 01:31, 10F
→
06/14 01:31, , 11F
06/14 01:31, 11F
→
06/14 07:53, , 12F
06/14 07:53, 12F
→
06/14 08:00, , 13F
06/14 08:00, 13F
→
06/14 08:01, , 14F
06/14 08:01, 14F
→
06/14 08:01, , 15F
06/14 08:01, 15F
→
06/17 01:50, , 16F
06/17 01:50, 16F
→
06/22 12:18, , 17F
06/22 12:18, 17F