[問題] 跟pointer有關的問題

看板C_and_CPP (C/C++)作者 (約翰‧克勞薩二世)時間16年前 (2009/04/13 03:43), 編輯推噓5(505)
留言10則, 6人參與, 最新討論串1/1
程式碼如下 int a=1,b=2,c=3,product; product=a*b; sub(&product,&c); void sub(int *x,int *y) { ...... } 現在我想改成,不需要預設一個product 而直接把a*b用call by address的方式丟進副函式 (不知道這邊是不是真的是call by address,可是C不是沒有call by ref嗎? 好像要到哪個版本才有ref的不是?) 舉例 sub(&(a*b),&c); 不過compile不給過,我想是不能這樣丟 不知道有沒有方法可以不用再新declare變數去存a*b以後的結果呢? -- Johannes Krauser II 強暴!強暴!強暴!強暴!強暴!強暴! GO TO D.M.C ◥◣ ◥◣ 強暴!強暴!強暴!強暴!強暴! ▄▂▁▂▃▅▆▅ ▃▄ハ ∵ ∵ ▃▄▃ シ ▋▊▍ φjeans1020 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.191.82

04/13 03:55, , 1F
沒有變數存為什麼要by address? 你不需要結果傳value
04/13 03:55, 1F

04/13 03:55, , 2F
就好了啊....
04/13 03:55, 2F
copy也是要耗時間的... 所以想試試看能不能不要做assign的動作就完成傳入 ※ 編輯: SATSUGAI 來自: 61.227.191.82 (04/13 06:13)

04/13 07:56, , 3F
你傳 pointer 也要 copy pointer 呀
04/13 07:56, 3F

04/13 07:56, , 4F
而且函式內多一步去 dereference 就更慢了
04/13 07:56, 4F

04/13 07:57, , 5F
如果你只傳遞資料,對內建型別來說直接傳值最有效率
04/13 07:57, 5F

04/13 10:25, , 6F
copy一個pointer跟copy一個int的時間應該差不了多少吧??
04/13 10:25, 6F

04/13 10:35, , 7F
十誡之三?
04/13 10:35, 7F

04/13 11:41, , 8F
其實call by address算是一種call by value
04/13 11:41, 8F

04/13 12:26, , 9F
樓上 GJ :)
04/13 12:26, 9F

04/13 16:23, , 10F
...sub(a*b, c); ...void sub(int x, int y){...}
04/13 16:23, 10F
文章代碼(AID): #19uaHuDM (C_and_CPP)
文章代碼(AID): #19uaHuDM (C_and_CPP)