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

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

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

往期文章 【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); 是获取一份儿相同的,不会自身重新开一份儿属于自己的内存地址...两者使用同一个内存地址,一般引用占用内存较大的变量时,会,比如对象和数组。

2.6K20

【C语言】指针进阶之调用调用

✔在编程语言如C中,调用和调用是用来传递参数给函数的方法。它们的主要区别在于参数传递的方式: ☞调用:这是最基本的参数传递方式,它涉及将参数的复制一份传递给函数。...在函数内部,对这些复制的进行的任何修改都不会影响到原参数的,因为函数只是在自己的局部范围内操作这个副本。 ☞调用:这种方式则是将参数的地址传递给函数。...3.调用的举例说明 #include void Swap2(int*px, int*py) {  int tmp = 0;  tmp = *px;  *px = *py;...✔调⽤,可以让函数和主调函数之间建⽴真正的联系,在函数内部可以修改主调函数中的变量; 4.结论 所以未来函数中只是需要主调函数中的变量值来实现计算,就可以采⽤调⽤。...如果函数内部要修改主调函数中的变量的,就需要调⽤。

6710

【C语言函数调用详解】——调用&调用

一.调用 什么是调用呢?顾名思义,调用就是直接将实参的传递给形参。...这样形参和实参的是一样的,但是函数的形参和实参分别占有不同的内存块,实参是一个独立的个体,形参也是一个独立的个体,只是形参的实参相同。...num1,num2的目的,我们看看结果是什么样的: 因此,调用,要想在函数内部交换两个变量的,是不可行的。...这里就需要调用。 二.调用 那什么是调用呢?这里的“”指的是地址。 调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。...以上就是对函数调用的两种方式,调用和调用的介绍,欢迎大家指正,我们一起进步!!!

16510

地址

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

2.3K40

ES6数据传递的

关于先看一下代码段!...简单来说相当于在服务器上有个页面,把它可乐一份给你你进行修改,不影响服务器的结果,而则是直接在服务器开通了权限给另外一个人进行直接对这个数据操场,因此不过是谁对这个数据进行操作,都将改变!...适用于单一类型(Undefined,String,Number,Boolean,Unll),适用引用类型(Object) 注意虽然引用类型包含Object和Symbol,但是Symbol用于创建唯一的量...小结:单一类型赋值是,而引用类型是,但是在模块化,不管是引用类型还是大一类型,数据传输都是地址,看一下下面的代码段!...这是一个。得出结论在模块化引用其他模块,无论是单一类型还是引用类型数据传输都是方式!

1.4K40

5分钟搞懂C语言的

补全下面的函数使其交换x,y的。 #include "stdio.h" //编写swap函数交换x,y的。...为了方便说明,我们用图来展示参数是如何进行的。...从图中清楚地发现,在函数的调用过程中实现的是main()函数里参数x和y的,即把main()函数里参数x和y的传递给swap函数里x和y,swap()函数中的x和y拥有自己的存储空间,所以接下来在...图中可以清楚地发现,在函数的调用过程中实现的是参数x和y的,即把x和y存储单元的地址传递给px和py,swap()函数中的形参不再拥有自己的存储空间,它们分别指向x和y的存储单元,所以接下来在swap...这也是在采用的时候修改形参也会影响实参的原因。 通过以上实例是不是就能很容易理解C语言的

44210

5分钟搞懂C语言的

补全下面的函数使其交换x,y的。...为了方便说明,我们用图来展示参数是如何进行的。...[640 (2).png] 从图中清楚地发现,在函数的调用过程中实现的是main()函数里参数x和y的,即把main()函数里参数x和y的传递给swap函数里x和y,swap()函数中的x和y拥有自己的存储空间...[640 (4).png] 图中可以清楚地发现,在函数的调用过程中实现的是参数x和y的,即把x和y存储单元的地址传递给px和py,swap()函数中的形参不再拥有自己的存储空间,它们分别指向x和y的存储单元...这也是在采用的时候修改形参也会影响实参的原因。 通过以上实例是不是就能很容易理解C语言的,有什么问题欢迎留言。

56681

PHP 函数引用的区别

函数引用的区别 ---- : 默认情况下, 函数参数通过传递, 所以即使在函数内部改变参数的也不会改变函数外部的 站长源码网 引用 : 就是在函数的参数前面添加 & 符号, 表示函数参数必须为引用地址..., 不能是一个具体的, 在函数内部对该参数所做操作会应用函数外部的该变量 引用传递官方手册 : https://www.php.net/manual/zh/language.references.pass.php...引用举例 ---- 的函数 $abc = 'Hello World'; echo $abc . ''; //Hello World echo strtolower($abc) ....''; //Hello World 引用的函数 echo ''; $arr = [3, 1, 2]; var_dump($arr);//[3, 1, 2] sort($arr); var_dump...where * @param array $keys * @return array */ function where_filter(array $where, &$keys) { // 去掉数组里的空

3.1K20

php引用详解

C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址 变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 <?...php $a="ABC"; $b =&$a; echo $a;//这里输出:ABC echo $b;//这里输出:ABC $b="EFG"; echo $a;//这里$a的变为EFG 所以输出EFG...> 函数的调用 调用我就不多说了 下面直接给出代码 function test(&$a){ $a=$a+100; } $b=1; echo $b;//输出1 test($b);..., 他的作用是 将return $b中的 $b变量的内存地址$a变量的内存地址 指向了同一个地方 即产生了相当于这样的效果($a=&b;) 所以改变$a的 也同时改变了$b的 所以在执行了 $a=...通俗的讲 1:如果有下面的代码 $a="ABC"; $b=$a; 其实此时 $a$b都是指向同一内存地址 而并不是$a$b占用不同的内存 2:如果在上面的代码基础上再加上如下代码 $a="EFG

5.1K20

关于引用的讨论

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

78450

关于引用的讨论

效率问题 对于用户自定义的类型来说,引用一般要比高效。...而引用则不用进过如此多的构造析构,甚至一次都不用。 对内置类型来说,的效率往往要高于引用。内置类型包括了int,float ,double,指针类型等等。...总结: 对内置类型来说,通常值更高效。 对用于自定义类型来所,要经历构造析构过程,一般比较耗时。 对象的切割问题 有时会引起对象的切割问题。...若希望在func中使用到实参的特性,引用能够保证这一点。 STL中的使用情况 如果你打开STL中的源码,你会发现容器的iterator都是通过形式参。...如上所示,是可以比引用快的没有,因为它少了一次解引用的操作。 (完)

72720

php引用的区别点总结

php:在函数范围内,改变变量值得大小,都不会影响到函数外边的变量值。 PHP引用:在函数范围内,对的任何改变,在函数外部也有所体现,因为引用的是内存地址。 :和copy是一样的。...php $testa=1; //定义变量a $testb=2; //定义变量b $testb = $testa; //变量a赋值给变量b echo...引用:类似于C语言的指针了,感觉差不多。打个比方,我有一橦房子,我给你一把钥匙,我们二个都可以进入这个房子,你在房子做什么都会影响到我。 <?...php $param2=1; //定义变量2 $param1 = &$param2; //将变量2的引用传给变量1 echo $param2; //显示为1...【优缺点:】会很耗时间,特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作,传送引用,函数内的任何操作等同于对传送变量的操作,传送大型变量时效率高!

2.7K51
领券