作者adddream (哆啦A孟)
站内Electronics
标题Re: [问题] c语言之指标问题
时间Sun Jan 28 23:12:32 2007
*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