数据类型的作用和意义

  1. 决定了程序中数据的意义

  2. 决定了能在该数据上进行的操作

举例说明:

i = i +j;

该语句的含义依赖于i和j的数据类型。如果i和j都是整数,那么这条语句执行的就是普通的加法运算。然而,如果i和j是类类型的数据(例如Sales_item类型的类型),则上述语句就把这两个对象的成分相加。

C++定义了一套包括算术类型空类型在内的基本数据类型。

算术类型包括:字符、整型数、布尔值和浮点数。

空类型不对应具体的值。

2.1.1算术类型

1.算术类型分为两种:整型(字符和布尔类型包含在内)和浮点型。

2.数据类型的尺寸(即该数据类型所占的比特数)在不同机器上有差别,但是C++标准规定了每种内置类型数据的尺寸的最小值,同时允许编译器赋予这些类型更大的尺寸。

3.算术类型:

bool、char、short、int、long、long long、float、double、long double

wchar_t、char16_t、char32_t;

4.wchar_t、char16_t、char32_t用于扩展字符集。wchar_t类型用于确保可以存放机器最大扩展字符集中的任意一个字符。char16_t和char32_t则为Unicode字符集服务。

5.C++语言规定:一个int至少和一个short一样大,一个long至少和一个int一样大,一个long long至少和一个long一样大。其中数据类型long long 是在C++11中新定义的。

6.在计算机中,可寻址的最小内存块成为“字节”,存储的基本单元是“”。

7.带符号类型和无符号类型

类型int、short、long和long long都是带符号的,通过在类型名前添加unsigned就可得到无符号类型。类型unsigned int 可以缩写为unsigned.

8.特别注意:

与其他整型不同,字符型被分成了三种:char、unsigned char和unsigned char。需要特别注意的是:类型char和signed char并不一样。尽管字符右三种,但是字符的表现形式却只有两种:带符号的和不带符号的。类型char实际上会表现为上述两种形式的一种,具体是哪种由编译器决定。

9.如何选择类型

  1. 当明确知晓数值不可能为负时,选用无符号类型。

  2. 使用int执行整数运算。在实际应用中,short常常显得太小而long一般和int右有一样的尺寸。如果数值超过了int表示的范围,选用long long。

  3. 在算术表达式中不要选用char或者bool,只有在存放字符或者布尔值时才使用它们。因为类型char在一些机器上是有符号的,而在另外一些机器上十无符号的,所以使用char进行运算特别容易出问题。如果需要使用一些不太大的整数,那么明确指定它是signed char或者unsigned char。

  4. 执行浮点数运算选用double,这是因为float通常精度不够而且双精度浮点数和单精度浮点数的计算代价相差无几。事实上,对于某些机器来说,双精度运算甚至比单精度还快。long double提供的精度在一般情况下是没有必要的,况且它带来的运行时消耗也不容忽略。