Re: [問題] c語言之指標問題

看板Electronics作者 (哆啦A孟)時間19年前 (2007/01/28 23:12), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
*ip 是宣告ip這個變為為一個指標變數 那至於你說為什麼要宣告指標變數,為什麼不直接取x作運算 是因為一些瑣碎的因素所產生 例如說:對程式要求比較高的效率,節省記憶體等等... 舉例來說 當你程式不僅只有一個main函式,而是在執行過程中需要呼叫另一個副函式 ,且你的副函式需要一個來自main函式引數,若此時你不是利用指標的方式自main函式 傳值給副函式的話,則你的副函式需要再另外一產生一個變數還儲存來自main函式引數 那此時便會因為這個新的變數而多消耗一些記憶體. 相對的,如果你是利用指標的方式,去運作的話,雖然要另外宣告一個變數去儲存引數 但此時,此變數只是單單儲存引數的位址而已.所以相較起來,所耗費的記憶體會較小一點. 以上,有誤請修正. ※ 引述《CuckooBoy (阿書)》之銘言: : 請問指標運用在什麼地方? : 或者什麼情況下就會用到它? : 剛學c的指標,稍微知道怎麼看..... : 但是不知道怎麼利用它在程式上... : 譬如 : : int *ip; /* ip 為一指標變數 */ : int x = 2, y; : ip = &x; /* ip是指標變數,要知道x變數的位址 */ : y = *ip + 1; /* 要知道ip位址的內容,也就是2,並且加1*/ : /*與 y = x + 1; 相同 */ : 為什麼要去關心x的位址,然後依x的位址的內容來作加 1呢? : 程式不是已經宣告x = 2 為什麼還要繞一大圈,最後得到內容還是2呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.226.121
文章代碼(AID): #15lBrXay (Electronics)
文章代碼(AID): #15lBrXay (Electronics)