let a = 3
let c = "c"
var p = withUnsafePointer(to: a, UnsafeRawPointer.init)
print(p.assumingMemoryBound(to: Int.self).pointee)
p.withMemoryRebound(to: Int.self, capacity: 1) { p in
print(p.pointee)
}
p = withUnsafePointer(to: c, UnsafeRawPointer.init)
print(p.assumingMemoryBound(to: String.self).pointee)
p.withMemoryRebound(to: String.self, capacity: 1) { p in
print(p.pointee)
}
const int a = 3;
const char c = 'c';
const void *p = &a;
printf("%d\n", *(int*)p);
p = &c;
printf("%c\n", *(char*)p);
var a = 0
var c = "0"
var p = withUnsafeMutablePointer(to: &a, UnsafeMutableRawPointer.init)
p.assumingMemoryBound(to: Int.self).pointee += 1
print(a)
p = withUnsafeMutablePointer(to: &c, UnsafeMutableRawPointer.init)
p.assumingMemoryBound(to: String.self).pointee = "1"
print(c)
int a = 0;
char c = '0';
void *p = &a;
*(int*)p += 1;
printf("%d\n", a);
p = &c;
*(char*)p = '1';
printf("%c\n", c);