Re: [問題] c語言之指標問題
*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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):