→ typepeter:推 09/22 22:16
→ typepeter:人腦compiler 09/22 22:16
→ kkkmode:希望有天我也可以人腦compiler...>< 09/22 22:18
→ realmeat:其實用位址表示會更好~ 因為都指到同一區塊去了 09/22 22:31
推 Recorder:為什麼str[0]的內容沒有被改掉呢@@? 09/23 00:34
推 abysses:因為先str[0]=*p之後才做p++ 09/23 00:37
推 Recorder:是因為引用的priority比++前面這樣嗎? 09/23 00:40
推 sidney78:++先 09/23 04:13
推 abysses:++大於*沒錯,但是是後置式的關係,所以會留在後面做 09/23 06:11
推 Recorder:感謝 09/23 07:14
推 opadro:推推 09/23 08:48
推 kuangs:想請問一下 ++大於 * 那以這個例子來說 如何才會使++先做?? 09/23 11:30
推 qoozxc789:++p? 09/23 15:19
推 abysses:*(p++) 09/23 19:49
→ abysses:或者*++p 09/23 19:50
→ ah7675:*(p++)會先做嗎?? 09/23 19:59
推 abysses:忽然這麼一說我也懷疑我自己了 09/23 20:02
推 abysses:不好意思誤導了~ *(p++)的++也會後面做~~ 感謝提醒 09/23 20:56
推 kkkmode:++先做沒錯,所以*p++=*(p++),只是*p會先assign給str[0] 09/23 20:59
→ kkkmode:p再加1,所以str[0]的內容不變 09/23 21:00
推 suscym: 在下新人 不大懂為何要用**p = str,而不是用單指標*p=st 09/23 23:51
→ typepeter:樓上在說第二行嗎? 第二行那是宣告型態: char **p=str 09/24 00:01
→ typepeter:(char **) 是一個型態 而這個型態的p其值為str的值 09/24 00:03
推 kuangs:Sorry 我有個疑問 我看了樓上幾位的解說 產生了疑問 09/24 10:24
→ kuangs:第四行 str[1]=*(p+1) 那應該不會改到str[1] 的值阿?? 09/24 10:25
→ kuangs:*(p+1) 不是等於 *p++ 嗎?? 新人問題有錯請糾正 感謝!! 09/24 10:26
推 genius945:str[1]=*(p+1); 是把等號右邊的assign給左邊的 09/24 11:56
推 suscym:抱歉 type大 我是想說為何不用char *p = str就好呢? 09/24 16:42
→ suscym:我的腦筋會有點轉不過來 是要想成指標str裡面又是一個指標 09/24 16:44
→ suscym:所以才要雙重指標char **p來指向嗎? 09/24 16:44
→ suscym:謝謝 09/24 16:44
→ suscym:是說如果我用char *p=str 就只有只像他的起始位置 無法做 09/24 16:45
→ suscym:陣列式存取是嗎? 09/24 16:45
→ typepeter:不是吧, str的型態是char *[] 近乎等同於char **耶? 09/24 20:53
→ typepeter:str本身是指向連續四個位置的指標的開頭 09/24 20:54
→ typepeter:而被str指向的指標,則是指向一個字串的開頭 09/24 20:55
→ typepeter:這樣寫和原文寫法是等價的: char *a="abcd"; 09/24 20:56
→ typepeter:char *e = "efgh"; char *i = "ijklmn"; 09/24 20:56
→ typepeter:char *o = "opqrstv"; char *str[] = {a,e,i,o}; 09/24 20:58
→ typepeter:str的型態是:一個指向 (指向字串開始字元指標) 的指標 09/24 20:59
→ typepeter:在C裡面,陣列幾乎等同於靜態指標,只差在不能指向別位址 09/24 21:01
→ typepeter:建議可以上網找找看關鍵字--> C語言 array pointer 09/24 21:02
→ realmeat:@suscym,如果你要瘋狂轉型態也沒啥不可以的, 這就是c, XD 09/25 06:09
→ realmeat:其實我不是很建議寫這種語意模糊的程式碼 09/25 06:11
→ realmeat:程式寫作上還有另一個重要點,就是要容易讀,這樣才好維護 09/25 06:12
→ realmeat:過度賣弄技巧過了三個月再回頭review你就嘗到苦果 (笑 09/25 06:14
推 suscym:感謝兩位前輩的解答~有時會被*****弄昏頭 09/25 15:02