2
讓我們假設這個代碼:通過參考參數傳遞給函數C++
void function(double &f){
// doing w/e here
}
然後在主功能:
float v;
function(&v);
我的編譯器說,這是不正確的,買我不真的不明白爲什麼。
關於同一主題:
void function(float *&f){
// doing w/e here
}
然後在主功能:
float *v;
function(v+5);
這也是不正確出於某種原因,我沒有得到任何。
所以我的問題是:爲什麼這些電話不正確?
特別注意 - 即使你用'double'替換float,指向double的指針也不是對double的引用。實際上,這些都是緊密相關的概念 - 一個引用也被稱爲自解引用指針 - 但C++將它們視爲具有不同行爲的不同類型。要爲參數指定一個指針類型,可以使用'double * f'而不是'double&f'。要傳遞引用,不需要運算符轉換爲引用,只需使用'function(v)'。 – Steve314
思考它的一種方法 - 如果你使用'&'作爲操作符,它會給你一個指針。如果在一個類型中使用'&',它會在後臺使用一個指針,但是您並不直接處理指針。 – Steve314