Swift 指针
Swift中的内存指针讲解的很清楚:http://onevcat.com/2015/01/swift-pointer/。
Apple期望在Swift中指针能够尽量减少登场几率,因此在Swift中指针被映射为了一个泛型类型,并且还比较抽象。Swift中,指针都使用一个特殊的类型来表示,那就是UnsafePointer
还有苹果官方博客:Interacting with C Pointers。
下面代码是数组指针用法:
// Swift Memory UnsafePointer
var array = [1, 2, 3, 4, 5]
var arrayPtr = UnsafeMutableBufferPointer<Int>(start: &array, count: array.count)
// baseAddress 是第一个元素的指针
var basePtr = arrayPtr.baseAddress as UnsafeMutablePointer<Int>
print(basePtr.memory) // 1
basePtr.memory = 10
print(basePtr.memory) // 10
//下一个元素
var nextPtr = basePtr.successor()
print(nextPtr.memory) // 2
print(array) // [10, 2, 3, 4, 5]