讓我先說。我知道標題懷疑我問了一個問題,這個問題在這裏和互聯網上多次被回答。我做了研究,但我找不到滿意的答案。重新撥打電話與撥打電話
我的問題最終歸結於此。爲什麼通過引用調用Java調用值和C++調用(何時使用指針)?
傳遞引用時需要考慮Java中的方法調用,而傳遞指針時要考慮使用C++中的方法調用。最後,在這兩種情況下,我都可以對調用者進行更改。在這兩種情況下,我都將對象的地址傳遞給函數。實際上,我正在複製,即在傳遞指針時,也通過C++中的值進行調用。
您可以簡單地通過運行下面的代碼驗證情況:
#include <iostream>
void modify (int *i) {
int a = 5;
i = &a;
}
int main() {
int b;
int *i = &b;
std::cout << i << std::endl;
modify(i);
std::cout << i << std::endl;
return 0;
}
,它將打印相同的地址兩次。
對我來說,僅僅通過引用屬性來證明你可以用它做交換功能是不夠的。我想知道通過引用引用通過引用調用的內容。
預先感謝您。
「爲什麼是Java調用按價值計算,C++調用由引用(使用指針時)?」因爲設計語言的人以這種方式指定了他們。 – twalberg