一些类型的sizeof()

#include<iostream>

class A{};
class B{char m_data;};
class C
{
    char m_data[100];
};
class D
{
    char* m_data;
    D() : m_data(new char[100]){}
    ~D()
    {
        delete []m_data;
    }
};
static void testSizeof()
{
    std::cout << "bool sizeof: " << sizeof(bool) <<std::endl;
    std::cout << "char sizeof: " << sizeof(char) <<std::endl;
    std::cout << "int sizeof: " << sizeof(int) <<std::endl;
    char data[10];
    char* pData = data;
    std::cout << "char data[10] sizeof: "<< sizeof(data) << std::endl;
    std::cout << "char* sizeof: " << sizeof(pData) << std::endl;
    std::cout << "A sizeof: " << sizeof(A) << std::endl;
    std::cout << "B sizeof: " << sizeof(B) << std::endl;
    std::cout << "C sizeof: " << sizeof(C) << std::endl;
    std::cout << "D sizeof: " << sizeof(D) << std::endl;
    std::cout << "size_t sizeof: " << sizeof(std::size_t) << std::endl;
}
static void unsignedAndSigned()
{
    std::size_t a = 10;
    int b = -1;
    if(b < a)
        std::cout << "right\n";
    else
        std::cout << "bad\n";
}
int main()
{
    testSizeof();
    unsignedAndSigned();
    return 0;
}

结果:

bool sizeof: 1
char sizeof: 1
int sizeof: 4
char data[10] sizeof: 10
char* sizeof: 4(32位4字节,64位8字节)
A sizeof: 1
B sizeof: 1
C sizeof: 100
D sizeof: 4 (8)
size_t sizeof: 4 (8)
bad

size_t无符号整数

当无符号整数与有符号整数做比较的时候,有符号整数转型为无符号数,然后按照无符号数的规则比较,但是-1会转化为最大的无符号数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值