c++数据类型及复杂声明推演
来源:优易学  2011-12-15 12:08:10   【优易学:中国教育考试门户网】   资料下载   IT书店

  数据类型
  c++程序员已经知道c语言有五种数据类型:void,int,float,double和char:
  类型 描述
  void 无数据类型
  int 整数类型
  float 浮点数
  double 双精度浮点数
  char 字符型
  c++有额外定义了两种类型:bool和wchar_t:
  类型 描述
  bool 布尔变量,true或者false
  wchar_t 宽字符
  类型修饰符
  这几个类型中的部分可以使用以下几个关键字来修饰:signed,unsigned,short和long. 如果只有类型修饰符自己被使用,则数据类型会被缺省地认为int.下面是一个完整的列表列出了可能的数据类型(等效的会被显示在同一行,并且用,隔开)
  整数类型
  bool
  char, signed char
  unsigned char
  short, short int, signed short int
  unsigned short, unsigned short int
  int, signed int
  unsigned, unsigned int
  long, long int, signed long, signed long int
  unsigned long, unsigned long int
  浮点类型
  float
  double
  long double
  可选支持的整数类型
  long long, signed long long, long long int, signed long long int
  unsigned long long, unsigned long long int
  wchar_t
  类型的大小和范围
  任何一种数据类型的大小和范围都是编译器相关的. 头文件"cfloat"(或者"float.h")经常定义了各种数据类型的最大最小值.你可以使用操作符sizeof来测试任何一种数据类型的大小(这里的大小是指该类型的变量说占用的空间大小,即占用的字节数).然而,很多的系统会依据某一标准来实现数据类型.整型和浮点型通常是32位,字符8位,双精度64位.布尔变量则常会是8位.long long类型是64位.
  数字值的限制是定义在头文件<limits>里. 模板化的类numeric_limits提供了系统相关的c++数据类型的表现。 使用适当的函数并且以数据类型作为模板参数可以返回一些需要的信息。需要注意的是mumeric_limits是可以被用户定义的类型重载。
  下面是一些相关的函数(译者:其实有些是静态成员变量,至少在dev-c++里如此):
  方法 返回类型 描述
  is_specialized bool
  radix int 指数的底
  digits int 尾数中的基数位数
  digits10 int 尾数中的10进制数位数
  is_signed bool
  is_integer bool
  is_exact bool
  min <type> 可以表示的最小数(不是负的最小数)
  max <type> 最大数
  epsilon <type> 固有误差
  round_error <type> 最大取正误差(即四舍五入就是0.5)
  infinity <type>
  quiet_NaN <type> 不能标示浮点错误的无效数字
  signaling_NaN <type> 标示浮点错误的无效数字
  denorm_min <type>
  min_exponent int
  min_exponent10 int
  max_exponent int
  max_exponent10 int
  has_infinity bool
  has_quiet_NaN bool
  has_signaling_NaN bool
  has_denorm <type>_denorm_style
  has_denorm_loss bool
  is_iec559 bool 遵照IEC-559规范
  is_bounded bool
  is_modulo bool
  traps bool
  tinyness_before bool
  round_style float_round_style { round_to_nearest, … } //float_round_style是一个枚举类型,具体可以参考<limits>
  最通常的用法就是边界检查来确认某一数据类型可以表示的最大最小值。接下来的代码打印出了该系统平台上short类型的最值:
  #include <limits>
  std::cout << "Maximum short value: " << std::numeric_limits<short>::max() << std::endl;
  std::cout << "Minimum short value: " << std::numeric_limits<short>::min() << std::endl;

[1] [2] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训