C++的基本数据类型

来源:互联网 发布:剑三成女金发脸型数据 编辑:程序博客网 时间:2024/06/08 17:01
       C++的基本数据类型如下表所示(下表中列出的各类型的长度和取值范围,是指以面向80x86处理器的 Viusal C++ 2012 和 gcc 4.8.1 的长度,其它的编译器并不一定是这个长度)。


  C++丰富的数据类型允许根据需要选择不同的类型,这也使得计算机的操作更复杂。


  自动类型转换(隐式类型转换)


  在下列四种情况中计算机自动进行类型转换:


  在混合类型的算术表达式中


  int ival = 3;


  double dval = 3.1415


  ival + dval; //ival 被提升为double 类型:3.0


  用另外一种类型的表达式赋值


  int *pi = NULL; // NULL(0)被转换成了int* 类型的空指针值


  用一个表达式传递给一个函数调用


  extern double sqrt(double);


  sqrt(2); //2被提升为double类型: 2.0


  从一个函数返回一个表达式


  double difference(int ival1, int ival2)


  {


  return ival1 - ival2; //返回值被提升为double 类型.


  }[8]


  强制类型转换(显示类型转换)


  C++显式转换包含四种转换:


  static_cast:


  用法:static_cast < type-id > ( expression )


  说明:该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。


  dynamic_cast :


  用法:dynamic_cast < type-id > (expression)


  说明:该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void*;


  const_cast:


  用法:const_cast (expression)


  说明:该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。
0 0