Delphi参数传值与传址区别
Delphi 里的参数传递,分成传值和传址两种,挺像你借别人东西和给别人地址的区别。传值就是给副本,函数改完你原来的值没动;传址就是真把地址给它,它想怎么改就怎么改,原变量立马受影响。
你看下面这段,procedure IncrementValue(a: Integer)
,传进去的是副本,x
再怎么也不变;但用var a: Integer
,那就不一样了,动了a
,x
直接跟着变。
实际用的时候,如果你只是给函数看看变量内容,传值就挺好;但要让函数改变量,像改个配置、更新状态啥的,那就用传址,效率也高。大数组、大结构,别傻傻拷来拷去,用地址直接上。
不过哦,传址虽然爽,用的时候也得小心,别把变量乱改,出点 BUG 你都不容易找。嗯,写函数的时候,自己心里得有数:这个变量能不能给别人改?要是不能,就别用var
,保命要紧。
如果你还想搞清楚对象参数怎么传的,推荐你看看Delphi 对象参数传递机制这篇文章,讲得也蛮细的。
92B
文件大小:
评论区