lua访问字符串时为什么不能从栈中弹出它,也不要去修改字符串?
1个回答
展开全部
在lua中,string是一个基本类型,已经完全封装了
无论是你的拼接操作还是其他操作,每次都会新生成一个string供你使用
但是 lua底层,是用C写的,而C是没有string这个基本类型的,而是用的字符数组
而当你对字符数组进行修改的时候,就不能保证原来保存的字符串的值还是正确的了
--------------------------------------------------------------------------------------------------------
因此,当你把lua的值放入堆栈时,这时候lua里的字符串已被完整的暴露在c下了
如果你对堆栈中的字符串进行修改,将会影响到lua中的字符串的值
无论是你的拼接操作还是其他操作,每次都会新生成一个string供你使用
但是 lua底层,是用C写的,而C是没有string这个基本类型的,而是用的字符数组
而当你对字符数组进行修改的时候,就不能保证原来保存的字符串的值还是正确的了
--------------------------------------------------------------------------------------------------------
因此,当你把lua的值放入堆栈时,这时候lua里的字符串已被完整的暴露在c下了
如果你对堆栈中的字符串进行修改,将会影响到lua中的字符串的值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询