Delphi参数传值与传址区别

Delphi 里的参数传递,分成传值传址两种,挺像你借别人东西和给别人地址的区别。传值就是给副本,函数改完你原来的值没动;传址就是真把地址给它,它想怎么改就怎么改,原变量立马受影响。

你看下面这段,procedure IncrementValue(a: Integer),传进去的是副本,x再怎么也不变;但用var a: Integer,那就不一样了,动了ax直接跟着变。

实际用的时候,如果你只是给函数看看变量内容,传值就挺好;但要让函数改变量,像改个配置、更新状态啥的,那就用传址,效率也高。大数组、大结构,别傻傻拷来拷去,用地址直接上。

不过哦,传址虽然爽,用的时候也得小心,别把变量乱改,出点 BUG 你都不容易找。嗯,写函数的时候,自己心里得有数:这个变量能不能给别人改?要是不能,就别用var,保命要紧。

如果你还想搞清楚对象参数怎么传的,推荐你看看Delphi 对象参数传递机制这篇文章,讲得也蛮细的。

txt 文件大小:92B