传值和传址的区别 传值调用和引用调用有什么区别?
浏览量:1531
时间:2021-03-12 19:59:21
作者:admin
传值调用和引用调用有什么区别?
值和地址传输的概念主要在于内存指针。但另一种方式更容易理解。
传递值:在内存中复制传递的形式参数变量,然后将其传递给函数,因此无论函数中的变量如何更改,它都不会更改原始内容。
传输地址(传输指针):告诉函数内存中参数变量的地址,这样函数中的更改会影响原始内容
引用可以直接对实际参数进行操作,不需要返回值,效率高。当传递值调用有返回值时,只能返回一个值,有时不能满足需要,会产生一个临时对象,效率较低。如果您满意,请采用
形式参数和实际参数:
int a(int x){//这个x是形式参数,是您定义的变量名
…]}
int main(){
int Y=5;
a(Y)//具体变量Y是实际参数
a(z)//z也是实际参数,这是一个实值
}
值转移调用和引用调用:
两者的区别在于,当传递引用时,实际传递给函数的参数是对实际参数的引用,而不是仅仅将值传递给函数。在传递引用时,形式参数和实际参数是相同的变量,即它们使用相同的内存空间和地址。传输值时,它们的地址不同;
2。在传输引用时,没有新的变量,因此类对象参数不会被构造或破坏。如果是值转移调用,则在调用时构造,退出时销毁;
3。因为原始参数的地址是用来引用的,所以引用参数值的修改会在退出函数后反映在主函数中,通过值转移调用修改参数不会影响主函数。
传值调用和引用调用有什么区别?
引用可以直接对实际参数进行操作,无需返回值,效率高。当值转移调用中有返回值时,只能返回一个值。有时它不能满足需要,会产生一个临时对象,效率低下。如果您满意,请接受
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。