首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

值与地址

很多语言在参的时候都有一个值和地址(或者是引用)的问题,我想用 C++ 语言来简单的描述一下。...因为我觉得无论是值还是址,C 或者 C++ 这两种语言都是能够比较直观的描述清楚的语言,原因是可以容易的去观察内存。其他语言也可能可以,只是其他语言的我不太知道如何去做。...对于第一段和第二段代码在 C++ 中称为值,对于第三段和第四段代码在 C++ 中称为地址。地址和值在内存中本身都是一个值,只是具体分类是做了区别而已。...NO.6 Java 参 Java 中说的参全部是值,但是当形参是一个对象的时候,其实相当于的是一个地址。因为变量中本身就保存的是一个地址,而不是一个值。...参时,也是把堆空间的地址传给了形参。Java 的堆和栈,是由 JVM 管理和维护。 End

2.3K40

址与

这里将讲述址与值的区别,先见下图。 这是值的过程,我们明明把a,b作为实参传过去了。可以看到,交换后的a,b并没有达到我们的预期。为什么会这样呢?...其实是因为,值的时候,形参是临时创建的,在执行完swap函数后,他们又自动销毁了,从而导致a,b的值并没有交换。如果想要改变实参的值,我们就需要进行址,而不是值。...总结:值:形参是实参的一份拷贝,函数运行起来后,实参是实参,形参和实参没有任何关联,改变形参时,不会对实参造成影响。            ...址:形参是实参地址的一份拷贝,形参指向的实体是实参,对形参解引用后,拿到的内容就是实参,因此,对形参解引用后的内容进行修改,改变的就是实参。

8810
您找到你想要的搜索结果了吗?
是的
没有找到

值和

往期文章 【JS ES6】const var let 一文搞懂声明关键字所有的知识点 目录 值 什么是值  例  址 什么是址 例  ---- 值 什么是值 let a = 1; let...b = a; console.log(a, b); //1 1 值是获取一份儿相同的值,并自身重新开一份儿属于自己的内存地址,两个变量是互相独立的并不会互相影响。  ...例  let a = 1; let b = a; b = 2; console.log(a); console.log(b); 修改了b的值,a的值不会受到影响,这就是值,两者是独立的存在,引用内存比较小的引用赋值一般都是值...址 什么是址 let a = { name: "xiaoxie", }; let b = a; console.log(a, b); 值是获取一份儿相同的值,不会自身重新开一份儿属于自己的内存地址...let b = a; b.name = "xiaoliu" console.log(a, b);  修改了b.name就是修改了a.name的值,两者使用同一个内存地址,一般引用占用内存较大的变量时,会

2.6K20

python参是值还是引用

因此,如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“引用”来传递对象 例2 def test2(p): p = "i in test2" print(p,...str) print(str,id(str)) 输出: i in test2 2885210784112 hello word 2885210784048 id不一样,所以说不是同一个对象,也就是说我们的还是引用...因此,如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“值'来传递对象。 总结: Python参数传递采用的肯定是“传对象引用”的方式。...这种方式相当于值和引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“引用”来传递对象。...如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“值'来传递对象。

3.5K150

vue学习 十五 值和引用 or 事件值(子父)

引用: 的就是对象(object)和数组(array); 值: 的就是字符串(string)、布尔(boolean)、数值(number); 主要表达的意思是: 在父传子组件中,数据写在父组件时...;引用的时候,改变一个数组或者对象都是将所有的改变;值的话,改变哪个值就是改变哪个,不会影响到其他。。...在这里,通过pop方法出栈数组元素,然后点击一个删除,两个相同数组中的li都会减少一个1个,从而说明了引用的时候改变数组中的元素,所有的都将改变 ?...事件值(子父): 首先是子组件中,定义一个点击事件触发方法,然后方法为注册事件,如下。...然后执行方法后就会在父组件中去找这个’事件名‘ $emit('事件名',’事件的内容是什么‘); ?

2.6K10

过程(四)地址和

一、 地 址 地址是VBA默认的数据传递方式,在定义过程时,如果形参前面有关键字ByRef或者省略,则该参数通过地址的方式传递。...定义过程中,在形参面前添加ByVal关键字,则该参数就按值方式传递。 将上面示例中地址的方式改成值方式再运行一次,对比下结果。...地址与值对比 两种方式,在程序中使用地址方式比值方式效率高,但是地址方式中,有可能对程序产生不必要的影响。...4,实参为变量,且变量放在括号内,如“(a)”,则为值。这种情况不多见 “址”还是“值”,该怎么选择呢?...而值则相反 在实际中,可以先用值方式,等调试后,再改为址方式 3,用址方式,要求实参与形参的数据类型完全一致 ---- 本节主要介绍过程的参数传递问题,重点是区分地址和值两种方式,结合示例去理解

4.7K30

关于值与引用的讨论

效率问题 对于用户自定义的类型来说,引用一般要比值高效。...而引用则不用进过如此多的构造与析构,甚至一次都不用。 对内置类型来说,值的效率往往要高于引用。内置类型包括了int,float ,double,指针类型等等。...-523832796.jpg] 可以看到,引用比值多了一次寻址操作,这是因为引用的实现往往基于指针,因此引用通常意味着真正传递的是指针。...若希望在func中使用到实参的特性,引用能够保证这一点。 STL中的使用情况 如果你打开STL中的源码,你会发现容器的iterator都是通过值形式参。...如上所示,值是可以比引用快的没有,因为它少了一次解引用的操作。 (完)

78750

Vue常用值方式、父传子、子父、非父子组件

比如一个组件调用另一个组件作为自己的子组件,那么我们如何进行给子组件进行值呢?如果是电商网站系统的开发,还会涉及到购物车的选项,这时候就会涉及到非父子组件值的情况。...我先给大家介绍Vue开发中常用的三种值方式。 Vue常用的三种值方式有: 父传子 子父 非父子值 引用官网的一句话:父子组件的关系可以总结为 prop 向下传递,事件向上传递。...父组件向子组件进行值 父组件: 父组件: <!...子组件向父组件值 子组件: 子组件: {{childValue}} <!...非父子组件进行值 非父子组件之间值,需要定义个公共的公共实例文件bus.js,作为中间仓库来值,不然路由组件之间达不到值的效果。

3.9K20

关于值与引用的讨论

效率问题 对于用户自定义的类型来说,引用一般要比值高效。...而引用则不用进过如此多的构造与析构,甚至一次都不用。 对内置类型来说,值的效率往往要高于引用。内置类型包括了int,float ,double,指针类型等等。...f()时,其汇编代码为: 当通过引用调用函数g()时,其汇编代码为: 可以看到,引用比值多了一次寻址操作,这是因为引用的实现往往基于指针,因此引用通常意味着真正传递的是指针。...总结: 对内置类型来说,通常值更高效。 对用于自定义类型来所,值要经历构造与析构过程,一般比较耗时。 对象的切割问题 值有时会引起对象的切割问题。...如上所示,值是可以比引用快的没有,因为它少了一次解引用的操作。 (完)

72820
领券