sizeof

sizeof#

sizeof 用于获取类型或表达式对应类型的大小, 返回该类型占多少字节, 跟值是多少没有任何关系.

如果类型为引用, 则返回被引用类型的大小. 这是可以理解的, 因为引用只需要作为别名而非对象, 不要求被实际存储.

1int value;
2sizeof(value) == sizeof(int);

危险

标准并没有规定一个字节占多少位, 更没有规定大多数基础类型的具体大小, 例如 sizeof(int) 并不一定是 4. 以下是一些固定的值,

  • 1 == sizeof(char) == sizeof(signed char) == sizeof(unsigned char).

  • 4 == sizeof(float).

  • 8 == sizeof(double).

如果实在需要固定大小的整数, 请使用 <cstdint> 中的定长整数别名, 例如 std::int64_t.