關於pointer問題 |
尚未結案
|
xenz
一般會員 發表:8 回覆:7 積分:3 註冊:2004-02-24 發送簡訊給我 |
char string[]="Input an integer";
char *p1;
p1=string;
ShowMessage(p1);
ShowMessage(string); 我看書上說p1是指向string的記憶體位址, 不會佔用記憶體..
但是我還是不太清楚幾個問題, 希望各位前輩能夠幫忙 1. 既然string可以取得相同的值, 為何我們還要使用pointer指向記憶體位址...這樣到底pl最終的用途是在哪? 2. 那麼我們要怎麼判斷什麼時候使用pointer呢?
|
seaturn99
版主 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: char string[]="Input an integer"; char *p1; p1=string; ShowMessage(p1); ShowMessage(string); 我看書上說p1是指向string的記憶體位址, 不會佔用記憶體.. 但是我還是不太清楚幾個問題, 希望各位前輩能夠幫忙 1. 既然string可以取得相同的值, 為何我們還要使用pointer指向記憶體位址...這樣到底pl最終的用途是在哪? 2. 那麼我們要怎麼判斷什麼時候使用pointer呢?xenz 您好 宣告 pointer (EX: char *p1) 還是有佔記憶體空間,您可以用 sizeof 查到大小,此記憶體空間是紀錄 Address 的 .. p1=string 是將 string[] 這個陣列的 Address 傳給 p1 , 此時 p1 與 string[] 相同 (您可以試看看改變 p1 的值) 1. 您的例子太淺顯,所以看不出 pointer 的威力,pointer 的用途一言難盡.. 2. pointer 是相當有威力的,舉個常會用到 pointer 的地方,如 Link List ... 或是建 Tree ,使用 pointer 都相當方便 .. ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ---- |
johnjohn
一般會員 發表:6 回覆:59 積分:13 註冊:2004-04-20 發送簡訊給我 |
|
xenz
一般會員 發表:8 回覆:7 積分:3 註冊:2004-02-24 發送簡訊給我 |
|
johnjohn
一般會員 發表:6 回覆:59 積分:13 註冊:2004-04-20 發送簡訊給我 |
|
xenz
一般會員 發表:8 回覆:7 積分:3 註冊:2004-02-24 發送簡訊給我 |
引言: 除非你想更改的變數是屬於全域變數(global variable),否則,"傳值呼叫"是不能更改那個"值"的,而必須以傳址的方式進行‧因此,你當然需要、必須使用指標囉! 事實上,指標的應用及功用真的太多了.舉一個簡單的例子,試想你要寫一個二分樹的程式,若你想完全不使用指標,你知道這個程式會變成怎樣嗎....? 他會變成一個又臭又長又醜陋的程式,相信我,因為我真的有試過‧這樣做,真的一點也不好玩... >>SPATIAL INFORMATION IS COOOOL<<喔喔...那麼謝謝喔.. 我再去找些來學習 |
johnny149
一般會員 發表:0 回覆:13 積分:2 註冊:2004-03-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |