结构体2

作者: aven_kang | 来源:发表于2022-03-13 14:12 被阅读0次

    值类型,引用类型的let

    截屏2022-02-17 下午2.19.07.png
    1.在值类型中,只有自己的一份内存空间的,在该内存空间中,let申明就是不允许修改改内存空间的东西
    2.引用类型中,Size对象创建出来的时候,只是一个指针,该指针有自己的内存空间,指针指向的才是该类真正的存着的东西,如果对类进行操作了,是会报错,但不会影响对成员属性就行修改,因为两者不是同一份内存空间
    class Point {
      // 16
     var x = 11;  // 8
     var y = 22; // 8
     var test = true // 1
    }
    
    在实际的内存使用中,首先创建一个类,基础空间就需要16,然后想x,y各占8个空间,bool类型占用一个,所以这个类至少需要 16 + 8 + 8 + 1 =33 然后根据对齐原则,就变成了16 + 8 + 8 + 8 = 40,最后在swift中malloc函数是16个字节对齐的,最后变成了 16 + 8 + 8 + 16 = 48

    嵌套类型

    截屏2022-02-17 下午2.40.13.png

    枚举、结构体、类都可以定义方法

    截屏2022-02-17 下午2.52.15.png

    相关文章

      网友评论

        本文标题:结构体2

        本文链接:https://www.haomeiwen.com/subject/bacslrtx.html