【发布时间】:2019-12-23 01:05:44
【问题描述】:
由于structs在Swift中是值类型,所以它们的内存当然是在栈上分配的。
我的问题是,为什么struct的不同实例分配在同一个变量中时,内存地址没有改变。
说明:
对于下面的struct,
struct Person {
var name: String
init(_ name: String) {
self.name = name
}
}
如果我创建Person 的实例,
var p = Person("John")
withUnsafePointer(to: &p) {
print("\(p) has address: \($0)") //0x000000010dcea3c0
}
p = Person("Jennifer")
withUnsafePointer(to: &p) {
print("\(p) has address: \($0)") //0x000000010dcea3c0
}
p = Person("Lisa")
withUnsafePointer(to: &p) {
print("\(p) has address: \($0)") //0x000000010dcea3c0
}
为什么每次都打印同一个地址?
【问题讨论】: