Я пытаюсь понять использование указателей в Swift, в частности: Unsafe[Mutable]Pointer
и UnsafeRaw[Mutable]Pointer
. У меня есть несколько вопросов по теме.
Является ли
UnsafePointer <T>
равнымconst T * Pointer
в ? иUnsafeMutablePointer <T>
равноT * Pointer
в C?В чем разница между
Unsafe[Mutable]Pointer
иUnsafeRaw[Mutable]Pointer
?Почему это компилируется
func receive(pointer: UnsafePointer<Int> ) {
print("param value is: \(pointer.pointee)")
}
var a: Int = 1
receive(pointer: &a) // prints 1
but this gives me an error?
var a: Int = 1
var pointer: UnsafePointer<Int> = &a // error : Cannot pass immutable value of type 'Int' as inout argument