美文网首页
Fundamental Types in C++

Fundamental Types in C++

作者: wywindz | 来源:发表于2018-11-14 09:34 被阅读0次

void 类型

void类型表示空类型,它是一个不完整类型(Incomplete Type),所以定义一个void类型的对象是不允许的。void类型不能够用来定义数组或引用,但是 void* 指针是允许的,同时void也可以作为函数的返回类型。

std::nullptr

std::nullptr定义在<cstddef>中,表示null pointer,它比较特殊,它自己并不是一个指针类型,同时也不指向任何类型;

Boolean 类型

bool类型,bool类型的长度是实现决定的,sizeof(bool)并不总是1;

Integer 整数类型

int类型至少2Byte,在32/64位系统上,几乎总是4Byte;

int的类型修饰符

int修饰符分为2类:有无符号长度,这些修饰符可以任意组合,且顺序无关 (long int unsigned long == unsigned long long int)

  • 有无符号
    • signed (signed是默认的)
    • unsigned
  • 长度
    • short -- int空间将被优化,但长度至少2Byte
    • long -- 长度至少4Byte
    • long long -- 长度至少8Byte(C++11)
std::size_t

std::size_t表示sizeof操作符的返回类型(unsigned int)?

字符类型

  • signed char
  • unsigned char
  • char -- 表示UTF-8字符集,默认signed
  • wchar_t -- 表示宽字符,在支持UNICODE字符集的系统上占32bits,但在windows系统中占16bits,表示UTF-16字符集;
  • char16_t -- 用于表示UTF-16字符集,16bits
  • char32_t -- 用于表示UTF-32字符集,32bits

浮点类型

  • float -- 单精度浮点,32bits
  • double -- 双精度浮点,64bits
  • long double -- 扩展精度浮点,通常为80bits

浮点类型还包括一些特殊值:

  • infinity
  • -0.0, 与0.0相等,但1.0/-0.0=-INFINITY
  • NaN -- 与任何值都不相等

取值范围

各种类型的取值范围可以通过std::numeric_limits<Type>来获取,如:

std::numeric_limits<unsigned char>::min()
std::numeric_limits<float>::max()

其他基础类型或宏

除了以上的基础类型外,C++还定义了以下basic type:

  • size_t
  • ptrdiff_t
  • nullptr_t
  • NULL
  • max_align_t
  • offsetof
  • byte

相关文章

网友评论

      本文标题:Fundamental Types in C++

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