深拷贝浅拷贝的原理

这是我来掘金的第一篇文张 写文章一直不是我的强项 本文章是我个人的理解 深拷贝浅拷贝大多数是看博客看出来的
其实这东西的本质就是指针

深拷贝 浅拷贝 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;
    }
*/

复制代码

我写文章真的不好 吐槽一下自己 我后面改进一下文笔哎

为什么要用c语言来解释我们来看一段代码

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希望大家了解这东西

为什么会这样 应为 a是指针和上面那个c语言一样

{} // 内存地址 改的是内存 不是数值

拷贝的本质

我创建了一个内存地址

0xasdkfjajshdfk 里面存的也是地址 0xasdkfjajshdfk 存 不是值 是地址 0x21321rahfajsg 你改内存了 不改值

所以才会要拷贝

你问要怎么拷贝啊 这简单

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

这个就是拷贝原理 懂了之后能写出更多的拷贝

我发现这样写文章有毒 当是还是发了 我先组织好语言 ?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值