深拷貝淺拷貝的原理

這是我來掘金的第一篇文張 寫文章一直不是個人強項 本文章是我我的的理解 深拷貝淺拷貝大多數是看博客看出來的
其實這東西的本質就是指針javascript

深拷貝 淺拷貝 c語言是怎麼樣的

這段代碼給你們解釋一下

前端的話 不多看到用指正來解釋 深拷貝 淺拷貝 應爲 學過c語言 低級語言纔有的指針前端

#include <stdio.h> //聲明頭

void sum(int a, int b, int *c); // 頭文件

int main(void){
    int c = 0; // 聲明變量c
    sum(1, 2, &c); // (int a 這個是數字, int b這個是數字, int *c這個是數字指針)
    printf("%d\n", c); // 輸出這個c
    
    /* 用js翻譯 let c = 0; sum(1, 2) // == 3 console.log(c) // == 0 <---->寫個斷點 */
    
    return 0;
}

void sum(int a, int b, int *c){ // 我沒有返回任何值
    *c = a + b;
}

/* 用js翻譯 function(a, b){ return a + b; } */

複製代碼

我寫文章真的很差 吐槽一下本身 我後面改進一下文筆哎java

爲何要用c語言來解釋咱們來看一段代碼ui

const a = {}
console.log(a) // a {}.x
console.log(a.x) // undefined
function hah(a){ 
	a.x = 3
}
hah(a)
console.log(a.x)
// 補充一個知識點 console = 快照 無論在哪裏 都會輸出的
複製代碼

console但願你們瞭解這東西spa

爲何會這樣 應爲 a是指針和上面那個c語言同樣翻譯

{} // 內存地址 改的是內存 不是數值指針

拷貝的本質

我建立了一個內存地址code

0xasdkfjajshdfk 裏面存的也是地址 0xasdkfjajshdfk 存 不是值 是地址 0x21321rahfajsg 你改內存了 不改值cdn

因此纔會要拷貝blog

你問要怎麼拷貝啊 這簡單

const a = {}
const b = {}
console.log(a)
console.log(a.x)
function hah(a){ 
	a.x = 3
}
hah(a)
hah(b)
console.log(a.x)
複製代碼

新內存.b

這個就是拷貝原理 懂了以後能寫出更多的拷貝

我發現這樣寫文章有毒 當是仍是發了 我先組織好語言 😭

相關文章
相關標籤/搜索