指標陣列的問題 |
尚未結案
|
syao
初階會員 發表:66 回覆:63 積分:25 註冊:2005-02-02 發送簡訊給我 |
|
repsolGP
一般會員 發表:5 回覆:12 積分:3 註冊:2005-03-04 發送簡訊給我 |
1.[]運算順序高於*
2.簡單來說單一指標搭配一維陣列使用
雙重指標搭配二維陣列
3.char *p[10]={"China","Microsoft","C++"};
也可以宣告成char p[3][10]={"China","Microsoft","C++"};
可以推出 *p==p[0]=='C'字元的位址==&p[0][0]
所以**p==*p[0]=="C"
同理*(p+1)==p[1]=='M'字元位址
所以**(p+1)==*p[1]==M 我所知到大概是這樣 有錯的話還請告知
|
syao
初階會員 發表:66 回覆:63 積分:25 註冊:2005-02-02 發送簡訊給我 |
char *p[10]={"China","Microsoft","C "};//ok char (*p)[10]={"China","Microsoft","C "};//error
加了括號的(*p)這樣用法不可以~~ *p[10]這種叫做指標陣列~~ 那(*p)[10]用法是怎樣的??懂得人可以舉例一下嗎?? 還有雙重指標 可以指向二維陣列嗎??
int arr[10][10];
int **p=arr;
這樣好像不行~~雙重指標通常是怎麼用~~&二維陣列可以用雙重指標表示出來嗎??(我指的是宣告時候ex:int **p=arr;類似這樣不過我這樣好像不對compiler出現錯誤) 謝謝 發表人 - syao 於 2005/05/18 10:54:03
|
GeorgeKu
中階會員 發表:1 回覆:120 積分:74 註冊:2004-10-13 發送簡訊給我 |
|
repsolGP
一般會員 發表:5 回覆:12 積分:3 註冊:2005-03-04 發送簡訊給我 |
恩 用範例來說明好了
#include輸出的結果: **pp = 0 *(*(pp 2) 2) = 4 ps: *pp == p[0]== a **pp == *a == 0 pp 2 == p 2 *(pp 2) == p[2] == a 2 *(pp 2) 2 == a 4 所以*(*(pp 2) 2)=4 如果還是不懂 我覺得你畫圖 會比較清楚 |
syao
初階會員 發表:66 回覆:63 積分:25 註冊:2005-02-02 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
大家好: 針對syao最早的提問,我試著寫個程式來做測試,如下請參考.
優先順序的確會影響對該變數的解讀與型態的賦予.
如果要宣告陣列並設定初始值,光給指標是不夠的,必須是明確的陣列形式(有[],長度可以不給,系統會自己算).
#includeRichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
repsolGP
一般會員 發表:5 回覆:12 積分:3 註冊:2005-03-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |