[問題] 雙重指標

看板C_and_CPP (C/C++)作者 (請輸入ID)時間4年前 (2020/06/15 01:40), 編輯推噓3(3017)
留言20則, 6人參與, 4年前最新討論串6/7 (看更多)
#include<iostream> using namespace std; int main(void) { int x = 5; int *ptr=&x; int **temp =&ptr; cout << "&ptr="<<ptr<< endl; cout << "*ptr=" << *ptr<< endl; cout << "&temp=" <<temp <<endl; cout << "**temp="<<**temp <<endl; return 0; } 既然雙重指標,是指標的指標,為什麼不能宣告int *temp 去指向 int *ptr呢? 一定要用**temp? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.213.185.143 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1592156440.A.03A.html

06/15 01:51, 4年前 , 1F
型別才是最重要的, 不要用值去學習
06/15 01:51, 1F

06/15 02:21, 4年前 , 2F

06/15 02:23, 4年前 , 3F
其實這個寫法的概念就跟value vs. pointer是一樣的
06/15 02:23, 3F

06/15 02:25, 4年前 , 4F
如果想要保留變數在函式中的任何操作,可以透過傳遞
06/15 02:25, 4F

06/15 02:25, 4年前 , 5F
變數位址的方式
06/15 02:25, 5F

06/15 02:25, 4年前 , 6F
同理,如果想要保留一維指標在函式中的操作,可以透
06/15 02:25, 6F

06/15 02:27, 4年前 , 7F
過傳遞指標位址的方式
06/15 02:27, 7F

06/15 10:55, 4年前 , 8F
你的code在語意上錯了 ptr跟&ptr是不一樣的
06/15 10:55, 8F

06/15 14:40, 4年前 , 9F
你可以試著用指標實作一個二維陣列 試試只有int*會怎樣
06/15 14:40, 9F

06/15 14:41, 4年前 , 10F
int**我會解釋成(int*)*,是存一個(int*)變數的位址的型態
06/15 14:41, 10F

06/15 15:57, 4年前 , 11F
把指標值印出來當參考的這種學習方法很大機會是概念
06/15 15:57, 11F

06/15 15:57, 4年前 , 12F
理解有誤, 處理複雜一點的型別就會出問題
06/15 15:57, 12F

06/15 21:38, 4年前 , 13F
指向“型別為指標的變數”的指標
06/15 21:38, 13F

06/15 21:38, 4年前 , 14F
指向“型別為int的變數”的指標
06/15 21:38, 14F

06/15 21:38, 4年前 , 15F
被指的東西不一樣
06/15 21:38, 15F

06/17 00:14, 4年前 , 16F
對名字誤解也會讓你難理解它的用途,他不叫雙重指標,
06/17 00:14, 16F

06/17 00:14, 4年前 , 17F
而是指標的指標,顧名思義,他是指向指標的指標,主要
06/17 00:14, 17F

06/17 00:14, 4年前 , 18F
用來操作指標的內容(記憶體位址),而非其對應資料型態
06/17 00:14, 18F

06/17 00:14, 4年前 , 19F
所指向的資料
06/17 00:14, 19F

06/17 00:15, 4年前 , 20F
*所指的資料
06/17 00:15, 20F
文章代碼(AID): #1Uvc4O0w (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 6 之 7 篇):
2
15
1
20
2
9
3
20
文章代碼(AID): #1Uvc4O0w (C_and_CPP)