假设我有一个采用 Integer 值 ByRef 的函数,如下所示:
Function myFunc(ByRef funcVal As Integer)
funcVal = funcVal + 1
End Function
Run Code Online (Sandbox Code Playgroud)
假设我这样称呼它:
Dim myVal as Integer
myVal = 5
Call myFunc(myVal)
Run Code Online (Sandbox Code Playgroud)
据我了解,计算机已为我的myVal变量分配了空间,并将值 5 放入该空间中。当我调用 时myFunc,计算机基本上会将指向该位置的指针传递给myFunc,因此当myFunc递增 时funcVal,它实际上是在递增同一位置,因此myVal也递增。
但是如果我像这样调用 myFunc 会发生什么:
Call myFunc(5)
Run Code Online (Sandbox Code Playgroud)
计算机是否仍然给出myFunc一个指针,如果是,则指向什么指针?或者它是否必须分配一些新空间funcVal(而不是像myVal我之前的示例中那样仅使用相同的空间)?
我想这里还有一个相关的问题 - VBA 如何处理代码中的文字值?
非常感谢!