Swift中的指针

文本所有代码都在playground中。

Apple抽象了Swift语言的指针,但是抽象的不够彻底。因为我一开始使用的就是C语言,对指针非常熟悉。我假设你已经熟悉指针,并想了解Swift中的指针。

下面我们来看一个整数类型的例子:

给一个指针分配内存

UnsafeMutablePointer类型是可变指针:可以改变指向的对象。在上面的例子中,指针指向了一个自动释放内存的对象,我们不用管理内存。如果我们分配一块内存并赋值,我们需要释放这块内存:

指向数组的指针

Swift中的指针可不可以指向数组呢?假设我们有一个int数组,我们用一个指针指向这个数组,然后用指针修改数组中的值。这里要用到了UnsafeMutableBufferPointer类型,用数组的地址和数组元素个数初始化UnsafeMutableBufferPointer,然后你可以得到baseAddress第一元素的地址,地址的类型为UnsafeMutableArray<T>,T为数组元素的类型,代码如下:

Screen Shot 2015-12-16 at 17.22.12

指向自定义结构体

我们很容易创建一个指针指向系统结构,如Int。其实自定义结构体和Int一样。代码:

总结:尽量避免使用指针,只有在非常需要时使用。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注