基本型別引數傳值

2021-08-07 06:42:58 字數 1349 閱讀 3132

一 、值傳遞

測試:

分析:值傳遞的過程中會給形參分配乙個同等型別的記憶體空間,將實參的內容深拷貝到為該形參分配的記憶體空間中,後續都是對形參的這塊空間進行操作,對實參的記憶體空間沒有影響;

二 、引用傳值

測試:

分析:引用傳值,在函式中不用重新分配乙個型別空間形參其實是實參所在的那個記憶體空間的別名(另外取得乙個名字),對形參的操作也可以認為是對實參的操作;

三 、指標傳值

測試:

分析:指標傳值,會給形參分配乙個形參型別的指標記憶體空間,這個指標記憶體空間裡儲存的是實參的記憶體位址,這個形參指向的是實參的那塊記憶體,因此可以利用形參索引到實參的記憶體對實參進行更改以及獲取實參的資料內容,但當形參儲存的位址變化後,將失去對實參的索引。

三種引數傳遞方式可以總結為:

指標的三種傳遞方式也是類似的:

值傳遞:

分配一塊指標空間,將實參中儲存的位址拷貝到分配的指標空間中,上述賦值是直接改變這塊指標空間儲存的位址,不會改變實參儲存的位址,因此函式執行完不會對名字進行更改。

引用傳遞:

形參中的name和實參中的name共用同一塊記憶體,形參中name儲存的位址改變,相應的也就是實參中儲存的位址的改變。

指標傳遞:

將實參name的位址賦值給形參的name,即形參name指向的記憶體塊就是實參name內容,因此給形參指向記憶體塊賦值就相當於改變實參name中的位址指向。

基本型別和引用型別的值 函式的傳遞引數

ecmascript中函式的傳參都是按值傳遞的。不管是傳基本型別的值還是引用型別的值都是按值傳遞,訪問變數則分按值和按引用兩種方式。向引數傳遞基本型別的值被傳遞的值會被複製 對應文章 基本型別和引用型別的值 複製變數值 給函式內部的乙個區域性變數。即命名引數,也就是argument物件的乙個元素 f...

shell基本型別和引數傳遞

shell字串 字串可以用單引號,也可以用雙引號,也可以不用引號。1.單引號 單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的 單引號字串中不能出現單引號 對單引號使用轉義符後也不行 2.雙引號 雙引號裡可以有變數 雙引號裡可以出現轉義字元 3.獲取字串長度 string abcd ech...

基本型別和引用型別作為引數傳遞

引用型別資料和基本型別資料作為引數傳遞有沒有差別呢?我們用如下 進行說明,並配合 讓大家更加清晰 基本型別作為引數傳遞時,其實就是將基本型別變數x空間中的值複製了乙份傳遞給呼叫的方法show 當在show 方法中x接受到了複製的值,再在show 方法中對x變數進行操作,這時只會影響到show中的x。...