Swift 指针

Swift中的内存指针讲解的很清楚:http://onevcat.com/2015/01/swift-pointer/
Apple期望在Swift中指针能够尽量减少登场几率,因此在Swift中指针被映射为了一个泛型类型,并且还比较抽象。Swift中,指针都使用一个特殊的类型来表示,那就是UnsafePointer。总的来说还是为了方便处理 C API,平时并不需要深入了解。

还有苹果官方博客: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]