如何在Swift中获取常量值类型的内存地址?

时间:2019-04-18 14:44:28

标签: swift

我想获取Swift中常量类型的内存地址。例如,变量看起来像:

我的代码:

var value = 10
withUnsafePointer(to: &value) {
   print(" str value \(value) has address: \($0)")
}

1 个答案:

答案 0 :(得分:3)

withUnsafePointer(to:,_:)中有一个variant接受一个非inout参数作为其第一个输入参数。

let immutableValue = 1
withUnsafePointer(to: immutableValue, { pointer -> Void in
    print(pointer)
})

正如MartinR所指出的,该指针仅对闭包的调用有效。

还必须注意,对于在编译时已知的值,编译器可能会用该值代替变量,因此在运行时该变量甚至可能不存在于内存中。