跳转至

内存平移

int a = 10;
int b = 10;
NSLog(@"%d -- %p",a,&a);
NSLog(@"%d -- %p",b,&b);

// 对象
LGPerson *p1 = [LGPerson alloc];
LGPerson *p2 = [LGPerson alloc];
NSLog(@"%@ -- %p",p1,&p1);
NSLog(@"%@ -- %p",p2,&p2);
// p1 p2地址不同,指向的空间也不同。两个对象。


// 数组指针
int c[4] = {5,6,7,9};
int *d= c;
NSLog(@"%p - %p - %p - %p - %p",&c,&c[0],&c[1],&c[2],&c[3]);
NSLog(@"%p - %p - %p - %p",d,d+1,d+2,d+3);//内存平移 d+1平移4字节

for (int i = 0; i<4; i++) {
  int value =  *(d+i);
  NSLog(@"%d",value);
}

iOS类的结构体拿到首地址,内存平移可以拿到结构体中指定内存内容。