call by value, call by address, call by reference
Last updated
Was this helpful?
Last updated
Was this helpful?
call by value, call by address, call by reference 差別在哪?
在這個例子中,==使用了一個swap function,它的功能是將a和b傳入的address進行交換==,之後在main裡面利用&符號傳入address,然後執行一遍就可以發現,交換前a的值為1,b的值為0,交換後a的記憶體空間和b交換,所以各自代表的值也變成了0和1。
當你使用call by address時,經常會使用到pointer,想當年當接觸C, C++的我對於pointer(指標)也是一知半解,符號*和&的用法除了知道理論外動手實際去做一遍才能熟能生巧,之後介紹一篇pointer的教學吧
Call by reference
看起來是不是和call by address很像呢,其實他也是==利用pointer的方法實作,只是更簡潔==,但這個方法只能在C++上使用,所以寫C的朋友們將就點使用call by address吧 !