用代码实现值传递与地址传递的区别
时间: 2024-04-12 12:27:12 浏览: 36
值传递与地址传递
在编程中,值传递和地址传递是两种不同的参数传递方式。
值传递是指将参数的值复制一份,然后将这份复制的值传递给函数或方法。在函数或方法内部对参数进行修改不会影响原始值。这是因为在函数或方法内部操作的是复制的值,而不是原始值。
示例代码如下:
```python
def change_value(x):
x = x + 1
num = 10
change_value(num)
print(num) # 输出结果为10
```
地址传递(也称为引用传递)是指将参数的内存地址传递给函数或方法,函数或方法可以通过这个地址访问和修改原始值。这样的话,在函数或方法内部对参数进行修改,会影响原始值。
示例代码如下:
```python
def change_value(lst):
lst.append(4)
my_list = [1, 2, 3]
change_value(my_list)
print(my_list) # 输出结果为[1, 2, 3, 4]
```
在上述示例中,使用地址传递将列表对象 `my_list` 的内存地址传递给函数 `change_value`,在函数内部通过这个地址对列表进行修改,因此原始列表 `my_list` 的值也被修改了。
总结起来,值传递是将参数的值复制一份,函数对复制的值进行操作不会影响原始值;而地址传递是将参数的内存地址传递给函数,函数可以通过地址修改原始值。
阅读全文