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

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

10610

往期文章 【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.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    指针变量的

    在main函数中,定义了指针pInt,调用func函数,pInt作为参数传入func函数中。结果*pInt并不是 12。...) { int *pInt = NULL; int val = func(pInt); printf("%d\n",*pInt); return 0; } 2 ...、引用区别和联系 :实参拷贝传递给形参。...就是实参赋值给形参,赋值完毕后实参就和形参没有任何联系,对形参的修改就不会影响到实参。 地址:实参地址的拷贝传递给形参。就是实参的地址复制给形参。...无论还是指针,函数都会生成一个临时变量,但引用时,不会生成临时变量, 时,只可以引用而不可以改变,但引用时,可以改变指针时,只可以改变指针所指的内容,不可以改变指针本身,但指针引用时

    2K30

    指针变量的

    在main函数中,定义了指针pInt,调用func函数,pInt作为参数传入func函数中。结果*pInt并不是 12。...() {     int *pInt = NULL;     int val = func(pInt);     printf("%d\n",*pInt);        return 0; } 2 ...、引用区别和联系 :实参拷贝传递给形参。...就是实参赋值给形参,赋值完毕后实参就和形参没有任何联系,对形参的修改就不会影响到实参。 地址:实参地址的拷贝传递给形参。就是实参的地址复制给形参。...无论还是指针,函数都会生成一个临时变量,但引用时,不会生成临时变量, 时,只可以引用而不可以改变,但引用时,可以改变指针时,只可以改变指针所指的内容,不可以改变指针本身,但指针引用时

    2.8K40

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

    一.调用 什么是调用呢?顾名思义,调用就是直接将实参的传递给形参。...num1,num2的目的,我们看看结果是什么样的: 因此,调用,要想在函数内部交换两个变量的,是不可行的。...那要怎么做呢?这里就需要调用。 二.调用 那什么是调用呢?这里的“”指的是地址。 调用是函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。...那现在我们用调用的方法对上面的函数重新进行实现: #include //正确的版本 void Swap2(int* px, int* py) { int tmp = 0; tmp...以上就是对函数调用的两种方式,调用和调用的介绍,欢迎大家指正,我们一起进步!!!

    64110

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

    ✔在编程语言如C中,调用和调用是用来传递参数给函数的方法。它们的主要区别在于参数传递的方式: ☞调用:这是最基本的参数传递方式,它涉及将参数的复制一份传递给函数。...在函数内部,对这些复制的进行的任何修改都不会影响到原参数的,因为函数只是在自己的局部范围内操作这个副本。 ☞调用:这种方式则是将参数的地址传递给函数。...这种调⽤函数的⽅式我们之前在函数的时候就知道了,这种叫调⽤。 结论:实参传递给形参的时候,形参会单独创建⼀份临时空间来接收实参,对形参的修改不影响实 参。 所以Swap是失败的了。 那怎么办呢?...✔调⽤,可以让函数和主调函数之间建⽴真正的联系,在函数内部可以修改主调函数中的变量; 4.结论 所以未来函数中只是需要主调函数中的变量值来实现计算,就可以采⽤调⽤。...如果函数内部要修改主调函数中的变量的,就需要调⽤。

    12910

    ES6数据传递的

    关于先看一下代码段!...:相当于数值进行复制一遍,而地址相当于真实地址进行操作!...简单来说相当于在服务器上有个页面,它可乐一份给你你进行修改,不影响服务器的结果,而则是直接在服务器开通了权限给另外一个人进行直接对这个数据操场,因此不过是谁对这个数据进行操作,都将改变!...小结:单一类型赋值是,而引用类型是,但是在模块化,不管是引用类型还是大一类型,数据传输都是地址,看一下下面的代码段!.../a.js"; console.log(a);//2 setInterval(()=>{   console.log(a);//4 },4000) 很明显这样的结果不是我们认为的普通传,如果是则这个

    1.4K40

    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语言的,有什么问题欢迎留言。

    62681

    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语言的

    47010
    领券