189 8069 5689

【C++】sizeof()函数解析-创新互联

【1】 常见数据类型的的sizeof函数得出的值表

创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为姚安企业提供专业的成都网站制作、成都做网站,姚安网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

charintshortlongfloatdouble指针
32 bit1424484
64 bit14 or 828488

【2】 数组求sizeof 的值

 数组的大小 = 数组中元素的个数 x 该类型的大小

【3】 union 求 sizeof 的值

 由于 union 中存在复写现象,union 结构的 sizeof 的值即为 union 中大的元素的大小。例如;

union student{
    int id;
    double score;
}

 这个 union 中的大的元素是double,所以它的 sizeof 就是8。

【4】 struct 中求 sizeof 的值

  struct 没有复写的情况,但是它的 sizeof 情况比较复杂,因为存在补位的情况,例如下面的例子

struct stu{
    char s;
    int i;
}

 它的大小不是简单的 1 + 4 = 5,而是8。因为 struct 的 size 一定是大成员的整数倍,如果其中有元素不需要大元素那么大的位置的话,就空着。所以上例的 struct 的大小为8。下一个例子

struct stu1{
    char a;
    char b;
    int c;
}

struct stu2{
    char a;
    int c;
    char b;
}

  虽然 stu1 和 stu2 的元素是一样的,只是顺序不一样,但是因为补位的原因,第一个的 size 为8字节,而第二个的 size 为 12 字节。

【5】 类对象的 sizeof 大小

 【5.1】 一个空类,里面任何函数也没有,它的对象的 size 是多少?

   大小为1。不是0的原因是当我们申明了一个对象的时候,系统就需要为其分配资源,所以一定不是0。

 【5.2】 如果我们在空类中加入了构造函数和析构函数,size 是多少?

  大小还是1,因为函数和对象是分离的。

 【5.3】 如果是虚函数呢?

  虚函数,每个类的对象中都会有一个指向虚函数的指针,所以大小要增加,在32位中,size为4个字节,在64位中为8个字节。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:【C++】sizeof()函数解析-创新互联
文章网址:http://jkwzsj.com/article/ceoedh.html

其他资讯