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

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

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

值和

往期文章 【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

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

一.值调用 什么是值调用呢?顾名思义,值调用就是直接将实参的值传递给形参。...这里就需要调用。 二.调用 那什么是调用呢?这里的“”指的是地址。 调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。...那现在我们用调用的方法对上面的函数重新进行实现: #include //正确的版本 void Swap2(int* px, int* py) { int tmp = 0; tmp...); printf("Swap2::num1 = %d num2 = %d\n", num1, num2); return 0; } 对代码进行一下分析: 这次我们再来看看结果: 所以,调用可以让实参和形参建立起真正的联系...以上就是对函数调用的两种方式,值调用和调用的介绍,欢迎大家指正,我们一起进步!!!

17210

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

✔在编程语言如C中,值调用和调用是用来传递参数给函数的方法。它们的主要区别在于参数传递的方式: ☞值调用:这是最基本的参数传递方式,它涉及将参数的值复制一份传递给函数。...☞调用:这种方式则是将参数的地址传递给函数。这样做的目的是让函数能够直接访问到传入的参数,并且可以对这些地址指向的数据进行修改。...3.调用的举例说明 #include void Swap2(int*px, int*py) {  int tmp = 0;  tmp = *px;  *px = *py;...✔调⽤,可以让函数和主调函数之间建⽴真正的联系,在函数内部可以修改主调函数中的变量; 4.结论 所以未来函数中只是需要主调函数中的变量值来实现计算,就可以采⽤值调⽤。...如果函数内部要修改主调函数中的变量的值,就需要调⽤。

6810

python参是值还是引用

在此之前先来看看变量和对象的关系:Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是对象。而变量是对象的一个引用(又称为名字或者标签),对象的操作都是通过引用来完成的。...因此,如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“引用”来传递对象 例2 def test2(p): p = "i in test2" print(p,...因此,如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“值'来传递对象。 总结: Python参数传递采用的肯定是“传对象引用”的方式。...这种方式相当于值和引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“引用”来传递对象。...如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“值'来传递对象。

3.5K150

指针详解(const、指针运算、数组名的理解、调用和值调用、一维数组的本质​)(一)

(arr) / sizeof(arr[0]);//获取数组中的元素个数 //test(arr);//这里的数组名就是数组首元素地址 Print(arr,sz); return 0; } 六、调用和值调用...值调用:的是变量,值调用 int Add(int x, int y) { return x + y; } int main() { int a = 10; int b = 20;...int ret = Add(a, b); //调用函数 printf("%d\n", ret); return 0; } 值调用:的是地址 6.1模拟strlen函数 int my_strlen...//数组名是数组首元素的地址 printf("%zd\n", len); return 0; } 6.2为什么有值两种调用方式 因为有一些问题是不使用指针无法解决的!!!...此处不发生变化 Swap2(&a, &b);//调用 printf("交换后:a = %d b = %d\n", a, b); return 0; } int main() { int

11210

python值和地址问题

python中,还没有对这个知识点有一个详细的定义,很模糊的说明了,通过下面代码,可以观察出来,什么时候的是值,什么时候的是地址 有时候会发现自己的数据发生变化,可能就是这个原因,python的创作者...# 值和地址的区别 # 对于简单的数值,采用值操作,即在函数内对参数的操作不影响外面的变量 # 对于复杂变量,采用地址操作,此时函数内的参数和外部变量是同一份内容, # 任何地方对此内容的更改都影响另外的变量或参数的使用...print(bn) 结果: [1, 5, 6, 5, 7, 9] [1, 5, 300, 5, 7, 9] [1, 5, 300, 5, 7, 9] 5 105 5 通过结果观察: 对于简单的数值,采用的是值操作...,即在函数内对参数的操作不影响外面的变量 对于复杂的变量,采用地址操作,此时函数内的参数和外部变量是同一份内容,任何地方对此内容的更改都会影响另外的变量或参数的使用 小伙伴们,注意啦!

90320

Python函数参数传递:值还是引用

按照C++语言的思维,如果Python函数参数的传递是值的话,结果应该是[0, 1],如果是引用的话,结果应该是[‘T’, ‘Z’, ‘Y’]。 可是实际结果是:[0, 1, 100]。...所以,Python函数参数的传递既不是所谓的值也不是引用。 Python函数参数传递 那么Python中函数参数到底是以什么形式传递的呢?...我们首先明确一些概念:Python中的变量和对象。 Python中的变量是没有类型的,我们可以把它看做一个(*void)类型的指针,变量是可以指向任何对象的,而对象才是有类型的。...而且Python中的对象有不可变对象(number,string,tuple等)和可变对象之分(list,dict等)。...所以最重要的一点是明白:Python中函数参数的传递是变量指向的对象的地址;Python中变量和对象的不同。

3.1K51
领券