搜尋此網誌

2011年7月7日 星期四

C++和Java的傳值和傳址(pass by reference in java and c++)



Java和C++對於陣列型態變數的存取都是直接在記憶體上做(call by reference),所以會改變變數值,同樣的對於

基本型態如int,皆為複製一份拷貝來做,並不會影響到原來的值,(call by value)

Java sample:



C++ sample:



對於傳入函式的使用者自訂物件,Java也是call by value,但在c++很特別的地方是,除非programmer指定要傳入的是address,若傳入的是value,是會被函式內的區域變數(Local Variable)覆蓋掉,無法使用,看下例便知:

沒有留言:

張貼留言