先看一段代碼 函數
int test(int &i) {return i;} int main() { cout<<test(1)<<endl; return 0; }此時編譯會報錯,提示「initial value of reference to non-const must be an lvalue」 ,也即傳遞給非const引用的值必需要爲左值
而若是改爲 spa
int test(const int &i) {return i;} int main() { cout<<test(1)<<endl; return 0; }程序就能正確執行。
綜上,若是形參是non-const引用,則實參必須是non-const型的變量,要想能給函數傳遞具體的數值或字符串,則可將形參設爲const類型。
code