我有两个类型为“UnsafePointer<Float>”的变量,它们应该指向两个 C 浮点数组。
我已经知道如何访问它们指向的内存的值。
我不知道该怎么做,是确定它们是否都引用相同的内存(即:都指向相同的地址)。
如何检查两个 UnsafePointer 存储的内存地址是否相同?
我有两个类型为“UnsafePointer<Float>”的变量,它们应该指向两个 C 浮点数组。
我已经知道如何访问它们指向的内存的值。
我不知道该怎么做,是确定它们是否都引用相同的内存(即:都指向相同的地址)。
如何检查两个 UnsafePointer 存储的内存地址是否相同?
在 Swift 中,UnsafePointer<T>
符合Comparable
协议,因此您可以简单地将指针与==
. 示例:交流功能
float *foo(void);
映射到 Swift 为
func foo() -> UnsafePointer<Float>
并且以下代码编译,并测试对该函数的两个后续调用是否返回相同的指针:
let p1 = foo()
let p2 = foo()
if p1 == p2 {
println("equal")
}
正如 Joachim 在评论中所说,指针值是它指向的内存地址。所以指针相等意味着它们指向相同的内存地址。