看板 C_and_CPP 關於我們 聯絡資訊
const int fun1() int fun2(const int x) 為何都是沒有意義的? 網路上說如果輸入參數採用“值傳遞”,由於函數將自動產生臨時 變量用於複製該參數,該輸入參數本来就無需保護,所以不要加const 複製一個臨時的變量跟保護有什麼關係? 第一個函式不就是回傳到const int的變數 第二個是傳遞的值不能改變 不是嗎 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.116.139 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1416930185.A.B34.html
uranusjr: 你的理解沒問題, 前面說的網路說法沒有全文無法評論, 但 11/25 23:44
uranusjr: 此兩例中的 const 絕對不是沒有意義 11/25 23:45
anoymouse: http://blog.xieyc.com/const-in-detail/ 的1.3 11/25 23:46
anoymouse: 的3.(1) 11/25 23:47
wuliou: 通常會搭配&用 有些大物件copy會太吃效能 11/26 00:01
wuliou: 這時候const可以避免失誤改到傳進來的東西 11/26 00:01
firose: 第二行不能說沒意義 至少可以確保改 int 在函數內不會被改 11/26 00:24
anoymouse: 看不懂網路上的意思 11/26 00:25
Push5F: 2意思是保證不會動到你傳進來的值 11/26 00:35
anoymouse: const simple *const function() 11/26 01:12
anoymouse: 第二個const是說指標也不能改變對嗎 11/26 01:12
dirkc: 第一個不是,因為複製值所以不限制回傳接的地方也需const 11/26 11:40
purpose: http://codepad.org/zhih7unj 去掉fun1()的 const 才能跑 11/26 12:03
dirkc: 可以和這個一起思考:http://codepad.org/R9fsOgoS 11/26 16:22
dirkc: 回傳是const如樓上的code,但經過複製值(=)後,接的地方不限 11/26 16:25
dirkc: 第二個是說在function的範圍(scope)內,該變數為const 11/26 16:26
dirkc: 原po在推文問的問題:對,代表不能改變指向的地方了,固定了 11/26 16:35
dirkc: 可再思考這個: http://codepad.org/mnqj0Y92 11/26 16:35
anoymouse: 我看看再問你們 謝謝 11/26 20:25