[問題] 函數傳遞引數的type 問題

看板C_and_CPP (C/C++)作者 (The Gazer)時間12年前 (2013/10/29 09:22), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
function(const int& value1,int value2) { ...................... } int main() { int a=1; int b=2; function(a,b); return 0; } 不是說參數與引數的型態需要一致嗎?這樣a應該必須宣告為const才能傳入 但結果是 可以傳入a 但是 不能修改 a 這又跟普遍說的一樣 這是什麼概念? 有大大可為小魯說明嗎~ˊˋ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.184.233

10/29 11:25, , 1F
const int& a 表示你不能透過a這個名稱來修改內容
10/29 11:25, 1F

10/29 11:26, , 2F
但a所指向的內容不一定是常數
10/29 11:26, 2F

10/29 11:36, , 3F
引數型態需要一致或是能自動轉型成一致
10/29 11:36, 3F

10/29 11:38, , 4F
把可以修改的東西當成不能修改來處理是沒問題的
10/29 11:38, 4F

10/29 11:38, , 5F
反過來就不行了
10/29 11:38, 5F

10/30 15:23, , 6F
因為const 修飾的參數可以接受非const 的變數傳入
10/30 15:23, 6F
文章代碼(AID): #1IRmtfLn (C_and_CPP)
文章代碼(AID): #1IRmtfLn (C_and_CPP)