Re: [請益] C語言指標以及陣列index問題
※ 引述《kkkmode (kkk)》之銘言:
: 大家好,
: 小弟有一個想不通的疑問
: 我用Dev-C++編譯下列程式碼
: 一直想不透問何p[1]=lmn
: char *str[]={"abcd","efg12","ijklmn","opqrstv"};
char **p=str; <- 這一行你可以把他想成p跟str指向一模一樣的位置
所以p[0] = str[0]
p[1] = str[1]...
以此類推
: str[0]=*p++;
: str[1]=*(p+1);
: str[2]=p[1]+3;
: str[3]=p[0];
: printf("%s\n",p[0]); => ijklmn p[0]和p應該是相同的位置
: printf("%s\n",p[1]); => lmn , p[1]有意義??
: printf("%s\n",p[2]); => ijklmn, p[2]有意義??
: 若把str[2]=p[1]+3;改成str[2]=p[1]+2; 結果會變成=>
: ijklmn
: klmn , 應該是影響str[2],為何會影響到p[1]
因為p跟str指向一樣的位置,更改str等於更改p了。
: ijklmn
: 事實上p[1]和p[2]應該都沒意義吧?(還是另有別意...小弟不才)
: 請問這要如何解釋呢?
如果有錯,請大家幫忙更正。謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.72.101
※ 編輯: RafaelC 來自: 123.110.72.101 (09/22 22:10)
→
09/22 22:11, , 1F
09/22 22:11, 1F
→
09/22 22:13, , 2F
09/22 22:13, 2F
→
09/22 22:14, , 3F
09/22 22:14, 3F
→
09/22 22:15, , 4F
09/22 22:15, 4F
→
09/22 22:17, , 5F
09/22 22:17, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):