[問題] 請問傳參考到底是什麼?

看板C_and_CPP (C/C++)作者 (碳管)時間16年前 (2009/06/21 16:26), 編輯推噓5(507)
留言12則, 5人參與, 最新討論串1/2 (看更多)
大家都知道C++有 call by adress, call by value, call by reference 其實call by adress也是種call by value 所以若函式中改了 adress,在單指標情況下,主程式是不知到adress已被改動的 那請問到底什麼是call by reference 似乎也不是把記憶體位置copy到函式中啊 當然更不是函式展開     那請問C++ complier是怎實做call by reference的呢  謝謝    -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.72.139

06/21 16:33, , 1F
參考 #19eem3G_ (C_and_CPP) 15581篇,簡單說是原變數的別名
06/21 16:33, 1F

06/21 16:37, , 2F
我想問 #define f(x, y){} ← 這是叫做 call by name 嗎@@?
06/21 16:37, 2F

06/21 16:41, , 3F
另外,如果你用VC參考我之前extern那篇,傳指標跟傳參考在傳送
06/21 16:41, 3F

06/21 16:41, , 4F
時假設傳int x; foo(x)跟foo(&x)都是用 lea eax,[x] push eax
06/21 16:41, 4F

06/21 19:38, , 5F
小弟我只想說, 不要再講什麼Call by Address了....
06/21 19:38, 5F

06/21 19:39, , 6F
CbA根本不是正式說法, 而且實際一說它是CbV, 一說是CbR
06/21 19:39, 6F

06/21 19:39, , 7F
亂的要死, 把CbV與CbR給搞清楚弄明白, 也把傳pointer變
06/21 19:39, 7F

06/21 19:40, , 8F
數這件事搞清楚, 就不會再被CbA等給混淆謎惑了@_@"
06/21 19:40, 8F

06/21 23:10, , 9F
Call by Address是台灣人自創,老外不這麼講的
06/21 23:10, 9F

06/21 23:33, , 10F
其實 O'reilly的practical C++ Programming一書中, 也用
06/21 23:33, 10F

06/21 23:33, , 11F
了call by address這個術語描術像function(int *var)這種
06/21 23:33, 11F

06/21 23:34, , 12F
東西.__." 所以不太算台灣人自創的吧囧?
06/21 23:34, 12F
文章代碼(AID): #1AFUwhWE (C_and_CPP)
文章代碼(AID): #1AFUwhWE (C_and_CPP)