数据的传值与引用(转)

数据的传值与引用主要体现在函数调用时候,通过参数来实现。

 

当数据在传递时,内存为实际参数开辟内存地址及内存空间,存放数据变为形式参数(非同于实际参数的内存地址和内存空间)。当调用函数完后,定义函数相应的执行并没有改变实际参数。

 

当数据(数组在引用时),内存只开辟内存地址而并不开辟内存空间,开辟的内存地址相同,决定了同一个地址位置。函数调用时,实际参数在定义函数的执行过程中,发生改变,因而成为引用。有点类似与浅拷贝,用的是同一个地址。

 

总之:

数据的传递,内存不仅开辟存放数据的内存地址,还开辟存放数据的内存空间,数据传递到定义函数时候,实际参数到形式参数后,内存自动清空数据,数据在定义函数执行后不发生任何变化;数组在引用时,尽开辟了内存地址,并没有开辟存放数据的空间,数组在函数调用后,引用的是同一内存地址,必然数组经过定义函数后,实际参数发生改变。