Lua 的值传递和引用传递

 在Lua中除了table是引用传递外,其他基本都是值传递。

1、值传递

值传递,会将实参的值拷贝到被调函数的作用域中,产生一个局部变量,该局部变量的变化不会影响实参。

2、引⽤传递

在引用传递过程中,被调函数的形式参数也作为局部变量在栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参(本体)的任何操作都被处理成间接寻址,即通过栈中存放的地址访问主调函数中的实参变量(根据别名找到主调函数中的本体)。因此,被调函数对形参的任何操作都会影响主调函数中的实参变量。

posted @ 2023-08-10 10:26  mshentai  阅读(335)  评论(0编辑  收藏  举报