struct GameBoard {
var p1Score: Int32
var p2Score: Int32
var gameOver: Bool
}
//获取内存占用大小
MemoryLayout<GameBoard>.self.size //4 + 4 + 1 = 9(bytes)
在 Swift 3.0 中,可以使用 withUnsafePointer(to:_:) 函数来打印值类型变量的内存地址,这样就能看出两个变量的内存地址并不相同。
let coordC = CoordinateStruct(x: 0, y: 0)
withUnsafePointer(to: &coordC) { print("\($0)") }
在 Swift 3.0 中,可以使用以下方法来打印引用类型变量指向的内存地址。从中即可发现,两个变量指向的是同一块内存空间。
let dogC = Dog()
dogC.height = 50
print(Unmanaged.passUnretained(dogC).toOpaque())
print(Unmanaged.passUnretained(dogC).toOpaque())
网友评论