区块链技术博客
www.b2bchain.cn

类的分析-内存偏移求职学习资料

本文介绍了类的分析-内存偏移求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

再过两天就国庆了,普天同庆.我也很庆幸还在坚持输出,这几天输出的文章还算可以,希望读者喜欢满意.不知道国庆佳节你会不会看,但是我一样会输出哦~~~~

前一篇博客探究了如果要想获取对象内存中的变量,底层实现方式是对象的首地址+偏移值。下面探究下内存偏移

普通指针

int main(int argc, char * argv[]) {     @autoreleasepool {        int a = 10;        int b = 10;        int * p = &a;        int * q = &b;        NSLog(@"---%d----%p---%p",a,p,&p);        NSLog(@"---%d----%p---%p",b,q,&q);     }     return 0; }  2021-06-17 15:07:03.252239+0800 内存偏移[11954:347138] ---10----0x7ffedfe69c8c---0x7ffedfe69c80 2021-06-17 15:07:03.252592+0800 内存偏移[11954:347138] ---10----0x7ffedfe69c88---0x7ffedfe69c78
  • ab的值都是10,但是ab的地址不一样,这就是常说的深拷贝
  • a的地址是0x7ffedfe69c8cb的地址是0x7ffedfe69c88,相差4字节,主要取决于a的类型
  • a>b>p>q的地址,且它们全部在栈区

类的分析-内存偏移

对象指针

int main(int argc, char * argv[]) {     @autoreleasepool {        LWPerson  * p1 = [LWPerson alloc];        LWPerson  * p2 = [LWPerson alloc];        NSLog(@"---%@----%p",p1,&p1);        NSLog(@"---%@----%p",p2,&p2);     }     return 0; }  2021-06-17 16:00:37.697384+0800 内存偏移[12536:388334] ---<LWPerson: 0x600002000000>----0x7ffee357bc70 2021-06-17 16:00:37.697465+0800 内存偏移[12536:388334] ---<LWPerson: 0x600002000010>----0x7ffee357bc68

再过两天就国庆了,普天同庆.我也很庆幸还在坚持输出,这几天输出的文章还算可以,希望读者喜欢满意.不知道国庆佳节你会不会看,但是我一样会输出哦~~~~

前一篇博客探究了如果要想获取对象内存中的变量,底层实现方式是对象的首地址+偏移值。下面探究下内存偏移

普通指针

int main(int argc, char * argv[]) {     @autoreleasepool {        int a = 10;        int b = 10;        int * p = &a;        int * q = &b;        NSLog(@"---%d----%p---%p",a,p,&p);        NSLog(@"---%d----%p---%p",b,q,&q);     }     return 0; }  2021-06-17 15:07:03.252239+0800 内存偏移[11954:347138] ---10----0x7ffedfe69c8c---0x7ffedfe69c80 2021-06-17 15:07:03.252592+0800 内存偏移[11954:347138] ---10----0x7ffedfe69c88---0x7ffedfe69c78
  • ab的值都是10,但是ab的地址不一样,这就是常说的深拷贝
  • a的地址是0x7ffedfe69c8cb的地址是0x7ffedfe69c88,相差4字节,主要取决于a的类型
  • a>b>p>q的地址,且它们全部在栈区

类的分析-内存偏移

对象指针

int main(int argc, char * argv[]) {     @autoreleasepool {        LWPerson  * p1 = [LWPerson alloc];        LWPerson  * p2 = [LWPerson alloc];        NSLog(@"---%@----%p",p1,&p1);        NSLog(@"---%@----%p",p2,&p2);     }     return 0; }  2021-06-17 16:00:37.697384+0800 内存偏移[12536:388334] ---<LWPerson: 0x600002000000>----0x7ffee357bc70 2021-06-17 16:00:37.697465+0800 内存偏移[12536:388334] ---<LWPerson: 0x600002000010>----0x7ffee357bc68

再过两天就国庆了,普天同庆.我也很庆幸还在坚持输出,这几天输出的文章还算可以,希望读者喜欢满意.不知道国庆佳节你会不会看,但是我一样会输出哦~~~~

前一篇博客探究了如果要想获取对象内存中的变量,底层实现方式是对象的首地址+偏移值。下面探究下内存偏移

普通指针

int main(int argc, char * argv[]) {     @autoreleasepool {        int a = 10;        int b = 10;        int * p = &a;        int * q = &b;        NSLog(@"---%d----%p---%p",a,p,&p);        NSLog(@"---%d----%p---%p",b,q,&q);     }     return 0; }  2021-06-17 15:07:03.252239+0800 内存偏移[11954:347138] ---10----0x7ffedfe69c8c---0x7ffedfe69c80 2021-06-17 15:07:03.252592+0800 内存偏移[11954:347138] ---10----0x7ffedfe69c88---0x7ffedfe69c78
  • ab的值都是10,但是ab的地址不一样,这就是常说的深拷贝
  • a的地址是0x7ffedfe69c8cb的地址是0x7ffedfe69c88,相差4字节,主要取决于a的类型
  • a>b>p>q的地址,且它们全部在栈区

类的分析-内存偏移

对象指针

int main(int argc, char * argv[]) {     @autoreleasepool {        LWPerson  * p1 = [LWPerson alloc];        LWPerson  * p2 = [LWPerson alloc];        NSLog(@"---%@----%p",p1,&p1);        NSLog(@"---%@----%p",p2,&p2);     }     return 0; }  2021-06-17 16:00:37.697384+0800 内存偏移[12536:388334] ---<LWPerson: 0x600002000000>----0x7ffee357bc70 2021-06-17 16:00:37.697465+0800 内存偏移[12536:388334] ---<LWPerson: 0x600002000010>----0x7ffee357bc68

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 类的分析-内存偏移求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们