首先來複習一下三者的用法
//call by value int main(){ int a = 10; plus(a); } int plus(int a){ //兩個a位於不同記憶體空間 return a++; } //call by address int main(){ int a = 10; plus(&a); // a = 11 } void plus(int* a){ //傳入a的記憶體位置,function中的a pointer指向main中的a變數 (*a)++; } //call by reference int main(){ int a = 10; plus(a); // a = 11; } void plus(int &a){ //作用與call by address相同,寫法更簡潔 C++ only a++; }整理到的資料顯示:
Reference (address) > Value
call by value 是速度最慢的,call by ref與 call by addr意思差不多,速度似乎也差不多? call by value慢是因為它必須先 copy一份再傳給被呼叫者
看來先把程式中函式呼叫call by value的部分先改掉試試看
沒有留言:
張貼留言