推广

005–OC对象原理探究 – 内存偏移

iseeyu2年前 (2024-02-21)推广133

image.png

a和b的值都是10,&a&b得到的地址不一样,说明的是不同地址可以访同一个值,简单来说就是值copy

对象指针

    QLDog *dog = [QLDog alloc];

    NSLog(@"%@---%p----%p",dog,dog,&dog);

打印结果:

image.png

1、QLDog的对象dog的地址为0x600002754520
2、换一种方式看,dog其实是(QLDog *)类型的指针,称为指针变量,指针变量dog地址为0x600002754520,即在alloc开辟的能装下QLDog所有数据大小的内存的地址。改地址位于中。
3、&dog指针dog的指针,为0x7ffee244fcf8,换句话说就是,指针dog内的值为堆中alloc出来的地址,抽出身来看,指针dog也在内存中,那么指针dog也有自己的地址,也就是&dog显示的地址,该地址位于中。
是不是有点懵,请看图

image.png

数组指针

    int c[4] = {5,6,7,8};
    int *d = c;
    
    NSLog(@"%p---%p---%p",c,&c[0],&c[1]);
    NSLog(@"%p---%p---%p",d, d + 1 , d + 2 );
    for (int i = 0; i < 4; i ++) {
        int value = c[i];
        NSLog(@"%d",value);
    }

打印结果

image.png

1、c&c[0]的地址一致,是因为数组的地址即为数组首个元素的地址。
2、dint *指针,存放的是数组c的地址,d + 1,d + 2分别表示d 偏移了1、2个步长(step)此处+1,+2操作是对指针的操作,不是对值的操作哦,不要混淆了。
3、dd + 1分别与c&c[1]地址一致。地址对应的值都是6。说明了d + 1的偏移可以得到数组c的c[1]元素
4、我们可以将for循环内的取值改为

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

总结

上面的例子,int类型占的是4字节,数组c的元素类型大小为4字节,即c[0]到c[1]相差4个字节d + 1,d + 2的操作相当于d在原来的地址上+4字节,+8字节,这就是指针的操作此 +1 非彼 +1
这就为我们提供了思路,可以对指针平移一些大小(步长step),来得到一些我们想要的内容。

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/56806.html

相关文章

App Store频频异常,如何利用主流应用推广手段“守住”榜单?

App Store频频异常,如何利用主流应用推广手段“守住”榜单?

本文主要包括两点: 1)IOS平台下App付费推广手段的介绍和分析; 2)我对于应用宝在IOS平台实现商业化的一些思考。 也希望感兴趣朋友能够和我多多交流~   ios平台下主流应用推广手段分析   众所周知,IOS和An...

针对网络营销白热化阶段,企业应谨记营销策略。

针对网络营销白热化阶段,企业应谨记营销策略。

2019年,已经竞争白热化,因为这是一个变化快速的时代,产品、营销模式不断迭代,所以企业网络营销更须与时俱进。在此,提几点个建议: 1、网络营销需要坚实的团队基础 企业要做好网络营销,要么有一支专业的队伍,要么外包给专业的公司执行。 如果请人,应当有以下配置:有着专业经验的...

网站关键词优化定位分析。

网站关键词优化定位分析。

很多企业在搭建好自己的网站之前,都会对网站做好相关的网站定位分析,网站的关键词选择合适不仅可以帮助企业带来巨大的用户流量,同时也可以帮助企业提升站点的排名以及权重。给予其更好的展现。关键词的选择决定着网站未来的发展以及方向,如果选择的关键词适合现代发展的企业,在后期的时候不需要过多的优化,站点的排名...

淘宝联盟没有高佣怎么推广(淘宝联盟自助推广佣金变少)

淘宝联盟没有高佣怎么推广(淘宝联盟自助推广佣金变少)

其实淘宝联盟和淘宝客是一种组织与个体的关系,淘宝联盟又叫阿里妈妈,按照官方的解释,目前是国内最大最专业的电子商务营销联盟,而淘宝客是这个联盟组织中的个体称号。...

检查网站跳出率忽高忽低原因,总结降低网站跳出率技巧。

检查网站跳出率忽高忽低原因,总结降低网站跳出率技巧。

凡是做SEO的人员都会遇到,网站问题,因此,很多网站都会采用添加相关数据监控分析网站跳出率多少,同时关注进入网站用户的访问需求,方便SEO操作人员作出相应的整改措施。一般,跳出率是作为一个衡量网站友好度的标准,好的跳出率不仅可以给网站带来可观的流量,还能提高网站的收录与排名。 一、分...

网站关键词怎么优化。

网站关键词怎么优化。

很多新手站长对于网站优化不在意或者不知道怎么做,只知道把网站做好后直接上传到服务器上面,然后再按部就班进行文章维护、交换友链等操作就可以让网站获得真实流量并获利。其实这是很盲目的优化思路,实际上seo人员在网站上线之前应该做好网站基础优化设置及关键词分类,下面关于这些作简单介绍。 网站整体优化...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片